diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Foundation.hs | 2 | ||||
-rw-r--r-- | Handler/Common.hs | 3 | ||||
-rw-r--r-- | Handler/Common/Types.hs | 2 | ||||
-rw-r--r-- | Handler/List.hs | 29 | ||||
-rw-r--r-- | Import/NoFoundation.hs | 1 | ||||
-rw-r--r-- | Model.hs | 5 | ||||
-rw-r--r-- | Model/Types.hs | 2 | ||||
-rw-r--r-- | Settings.hs | 9 | ||||
-rw-r--r-- | bar.cabal | 140 | ||||
-rw-r--r-- | package.yaml | 106 | ||||
-rw-r--r-- | stack.nix | 14 | ||||
-rw-r--r-- | stack.yaml | 28 | ||||
-rw-r--r-- | templates/list-no-thermoprint.hamlet | 8 |
14 files changed, 179 insertions, 171 deletions
@@ -21,3 +21,4 @@ cabal.sandbox.config | |||
21 | **/.gup | 21 | **/.gup |
22 | static/webshim/ | 22 | static/webshim/ |
23 | static/jquery.js | 23 | static/jquery.js |
24 | bar.cabal | ||
diff --git a/Foundation.hs b/Foundation.hs index 22e5d49..7c44498 100644 --- a/Foundation.hs +++ b/Foundation.hs | |||
@@ -39,7 +39,7 @@ data MenuItem = MenuItem | |||
39 | mkYesodData "App" $(parseRoutesFile "config/routes") | 39 | mkYesodData "App" $(parseRoutesFile "config/routes") |
40 | 40 | ||
41 | -- | A convenient synonym for creating forms. | 41 | -- | A convenient synonym for creating forms. |
42 | type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget) | 42 | type Form x = Html -> MForm (HandlerFor App) (FormResult x, Widget) |
43 | 43 | ||
44 | -- Please see the documentation for the Yesod typeclass. There are a number | 44 | -- Please see the documentation for the Yesod typeclass. There are a number |
45 | -- of settings which can be configured by overriding methods here. | 45 | -- of settings which can be configured by overriding methods here. |
diff --git a/Handler/Common.hs b/Handler/Common.hs index 88cbd8d..11a9431 100644 --- a/Handler/Common.hs +++ b/Handler/Common.hs | |||
@@ -1,4 +1,5 @@ | |||
1 | {-# LANGUAGE ApplicativeDo #-} | 1 | {-# LANGUAGE ApplicativeDo |
2 | #-} | ||
2 | 3 | ||
3 | module Handler.Common | 4 | module Handler.Common |
4 | ( inventoryListing | 5 | ( inventoryListing |
diff --git a/Handler/Common/Types.hs b/Handler/Common/Types.hs index 9150f16..491468c 100644 --- a/Handler/Common/Types.hs +++ b/Handler/Common/Types.hs | |||
@@ -1,5 +1,3 @@ | |||
1 | {-# LANGUAGE FunctionalDependencies #-} | ||
2 | |||
3 | module Handler.Common.Types where | 1 | module Handler.Common.Types where |
4 | 2 | ||
5 | import Import | 3 | import Import |
diff --git a/Handler/List.hs b/Handler/List.hs index 522f6f5..a2194ba 100644 --- a/Handler/List.hs +++ b/Handler/List.hs | |||
@@ -1,5 +1,3 @@ | |||
1 | {-# LANGUAGE PatternGuards #-} | ||
2 | |||
3 | module Handler.List where | 1 | module Handler.List where |
4 | 2 | ||
5 | import Import | 3 | import Import |
@@ -12,8 +10,18 @@ import qualified Data.Map as Map | |||
12 | import qualified Data.Text as Text | 10 | import qualified Data.Text as Text |
13 | import qualified Data.Text.Lazy as Lazy.Text | 11 | import qualified Data.Text.Lazy as Lazy.Text |
14 | 12 | ||
13 | #ifdef THERMOPRINT | ||
15 | import Thermoprint.Client | 14 | import Thermoprint.Client |
16 | 15 | ||
16 | mkPrintout :: Set (WithType Text) -> Printout | ||
17 | mkPrintout list = Printout ps | ||
18 | where | ||
19 | ps = Map.foldMapWithKey (fmap (pure . Paragraph . pure . Cooked) . toLines) $ group list | ||
20 | group = Map.fromListWith (<>) . fmap (\(kind `WithType` t) -> (t, Set.singleton kind)) . Set.toAscList | ||
21 | toLines t (Set.toAscList -> kinds) = either id Line . text . Lazy.Text.fromStrict . Text.unlines $ | ||
22 | pure t ++ map (" - " <>) kinds | ||
23 | #endif | ||
24 | |||
17 | list :: Handler (Set (WithType Text)) | 25 | list :: Handler (Set (WithType Text)) |
18 | list = runDB $ do | 26 | list = runDB $ do |
19 | today <- liftIO $ utctDay <$> getCurrentTime | 27 | today <- liftIO $ utctDay <$> getCurrentTime |
@@ -34,14 +42,8 @@ list = runDB $ do | |||
34 | 42 | ||
35 | return $ Set.map (fmap referenceKind) references' | 43 | return $ Set.map (fmap referenceKind) references' |
36 | 44 | ||
37 | mkPrintout :: Set (WithType Text) -> Printout | ||
38 | mkPrintout list = Printout ps | ||
39 | where | ||
40 | ps = Map.foldMapWithKey (fmap (pure . Paragraph . pure . Cooked) . toLines) $ group list | ||
41 | group = Map.fromListWith (<>) . fmap (\(kind `WithType` t) -> (t, Set.singleton kind)) . Set.toAscList | ||
42 | toLines t (Set.toAscList -> kinds) = either id Line . text . Lazy.Text.fromStrict . Text.unlines $ | ||
43 | pure t ++ map (" - " <>) kinds | ||
44 | 45 | ||
46 | #ifdef THERMOPRINT | ||
45 | getListR, postListR :: Handler TypedContent | 47 | getListR, postListR :: Handler TypedContent |
46 | getListR = postListR | 48 | getListR = postListR |
47 | postListR = do | 49 | postListR = do |
@@ -99,3 +101,12 @@ postListR = do | |||
99 | selectRep $ do | 101 | selectRep $ do |
100 | provideJson $ typeToJSON "item" <$> Set.toAscList list | 102 | provideJson $ typeToJSON "item" <$> Set.toAscList list |
101 | provideRep $ defaultLayout $(widgetFile "list") | 103 | provideRep $ defaultLayout $(widgetFile "list") |
104 | #else | ||
105 | getListR, postListR :: Handler TypedContent | ||
106 | getListR = postListR | ||
107 | postListR = do | ||
108 | list <- list | ||
109 | selectRep $ do | ||
110 | provideJson $ typeToJSON "item" <$> Set.toAscList list | ||
111 | provideRep $ defaultLayout $(widgetFile "list-no-thermoprint") | ||
112 | #endif | ||
diff --git a/Import/NoFoundation.hs b/Import/NoFoundation.hs index 1a5b107..7fe2807 100644 --- a/Import/NoFoundation.hs +++ b/Import/NoFoundation.hs | |||
@@ -8,7 +8,6 @@ import Model as Import | |||
8 | import Model.Types as Import | 8 | import Model.Types as Import |
9 | import Settings as Import | 9 | import Settings as Import |
10 | import Settings.StaticFiles as Import | 10 | import Settings.StaticFiles as Import |
11 | import Yesod.Auth as Import | ||
12 | import Yesod.Core.Types as Import (loggerSet) | 11 | import Yesod.Core.Types as Import (loggerSet) |
13 | import Yesod.Default.Config2 as Import | 12 | import Yesod.Default.Config2 as Import |
14 | import Yesod.EmbeddedStatic as Import | 13 | import Yesod.EmbeddedStatic as Import |
@@ -1,6 +1,5 @@ | |||
1 | {-# LANGUAGE FlexibleInstances #-} | 1 | {-# LANGUAGE GeneralizedNewtypeDeriving |
2 | {-# LANGUAGE DeriveFunctor #-} | 2 | #-} |
3 | {-# LANGUAGE PatternGuards #-} | ||
4 | 3 | ||
5 | module Model where | 4 | module Model where |
6 | 5 | ||
diff --git a/Model/Types.hs b/Model/Types.hs index 61bebfd..5e2a6ef 100644 --- a/Model/Types.hs +++ b/Model/Types.hs | |||
@@ -1,5 +1,3 @@ | |||
1 | {-# LANGUAGE DeriveGeneric #-} | ||
2 | |||
3 | module Model.Types | 1 | module Model.Types |
4 | ( ItemDate(..) | 2 | ( ItemDate(..) |
5 | , isNever, isUnknown, isKnown | 3 | , isNever, isUnknown, isKnown |
diff --git a/Settings.hs b/Settings.hs index 8a98c7a..a79f6f8 100644 --- a/Settings.hs +++ b/Settings.hs | |||
@@ -1,4 +1,3 @@ | |||
1 | {-# Language CPP #-} | ||
2 | -- | Settings are centralized, as much as possible, into this file. This | 1 | -- | Settings are centralized, as much as possible, into this file. This |
3 | -- includes database connection settings, static file locations, etc. | 2 | -- includes database connection settings, static file locations, etc. |
4 | -- In addition, you can configure a number of different aspects of Yesod | 3 | -- In addition, you can configure a number of different aspects of Yesod |
@@ -19,7 +18,9 @@ import Yesod.Default.Config2 (applyEnvValue, configSettingsYml) | |||
19 | import Yesod.Default.Util (WidgetFileSettings, widgetFileNoReload, | 18 | import Yesod.Default.Util (WidgetFileSettings, widgetFileNoReload, |
20 | widgetFileReload) | 19 | widgetFileReload) |
21 | 20 | ||
21 | #ifdef THERMOPRINT | ||
22 | import Thermoprint.Client (BaseUrl(..), parseBaseUrl) | 22 | import Thermoprint.Client (BaseUrl(..), parseBaseUrl) |
23 | #endif | ||
23 | 24 | ||
24 | #ifdef DEVELOPMENT | 25 | #ifdef DEVELOPMENT |
25 | #define DEV_BOOL True | 26 | #define DEV_BOOL True |
@@ -51,13 +52,14 @@ data AppSettings = AppSettings | |||
51 | , appReloadTemplates :: Bool | 52 | , appReloadTemplates :: Bool |
52 | -- ^ Use the reload version of templates | 53 | -- ^ Use the reload version of templates |
53 | 54 | ||
55 | #ifdef THERMORPINT | ||
54 | , appThermoprintBase :: BaseUrl | 56 | , appThermoprintBase :: BaseUrl |
57 | #endif | ||
55 | } | 58 | } |
56 | 59 | ||
57 | instance FromJSON AppSettings where | 60 | instance FromJSON AppSettings where |
58 | parseJSON = withObject "AppSettings" $ \o -> do | 61 | parseJSON = withObject "AppSettings" $ \o -> do |
59 | let defaultDev = DEV_BOOL | 62 | let defaultDev = DEV_BOOL |
60 | parseUrl' = either (fail . show) return . parseBaseUrl | ||
61 | appStaticDir <- o .: "static-dir" | 63 | appStaticDir <- o .: "static-dir" |
62 | appDatabaseConf <- o .: "database" | 64 | appDatabaseConf <- o .: "database" |
63 | appRoot' <- o .:? "approot" | 65 | appRoot' <- o .:? "approot" |
@@ -73,7 +75,10 @@ instance FromJSON AppSettings where | |||
73 | appShouldLogAll <- o .:? "should-log-all" .!= defaultDev | 75 | appShouldLogAll <- o .:? "should-log-all" .!= defaultDev |
74 | appReloadTemplates <- o .:? "reload-templates" .!= defaultDev | 76 | appReloadTemplates <- o .:? "reload-templates" .!= defaultDev |
75 | 77 | ||
78 | #ifdef THERMOPRINT | ||
79 | let parseUrl' = either (fail . show) return . parseBaseUrl | ||
76 | appThermoprintBase <- parseUrl' =<< o .: "thermoprint-url" | 80 | appThermoprintBase <- parseUrl' =<< o .: "thermoprint-url" |
81 | #endif | ||
77 | 82 | ||
78 | return AppSettings {..} | 83 | return AppSettings {..} |
79 | 84 | ||
diff --git a/bar.cabal b/bar.cabal deleted file mode 100644 index 7ed983b..0000000 --- a/bar.cabal +++ /dev/null | |||
@@ -1,140 +0,0 @@ | |||
1 | name: bar | ||
2 | version: 0.6.6 | ||
3 | cabal-version: >= 1.8 | ||
4 | build-type: Simple | ||
5 | |||
6 | Flag dev | ||
7 | Description: Turn on development settings, like auto-reload templates. | ||
8 | Default: False | ||
9 | |||
10 | Flag library-only | ||
11 | Description: Build for use with "yesod devel" | ||
12 | Default: False | ||
13 | |||
14 | library | ||
15 | hs-source-dirs: ., app | ||
16 | exposed-modules: Application | ||
17 | Foundation | ||
18 | Import | ||
19 | Import.NoFoundation | ||
20 | Model | ||
21 | Model.Types | ||
22 | Settings | ||
23 | Settings.StaticFiles | ||
24 | Handler.Common | ||
25 | Handler.Common.Types | ||
26 | Handler.InventoryListing | ||
27 | Handler.UpdateItem | ||
28 | Handler.OpenItem | ||
29 | Handler.LowItem | ||
30 | Handler.DeleteItem | ||
31 | Handler.Item | ||
32 | Handler.ReferenceListing | ||
33 | Handler.ReferenceItem | ||
34 | Handler.DeleteRefItem | ||
35 | Handler.Kinds | ||
36 | Handler.Types | ||
37 | Handler.List | ||
38 | Handler.InventoryList | ||
39 | |||
40 | if flag(dev) || flag(library-only) | ||
41 | cpp-options: -DDEVELOPMENT | ||
42 | ghc-options: -Wall -fwarn-tabs -O0 | ||
43 | else | ||
44 | ghc-options: -Wall -fwarn-tabs -O2 | ||
45 | |||
46 | extensions: TemplateHaskell | ||
47 | QuasiQuotes | ||
48 | OverloadedStrings | ||
49 | NoImplicitPrelude | ||
50 | MultiParamTypeClasses | ||
51 | TypeFamilies | ||
52 | GADTs | ||
53 | GeneralizedNewtypeDeriving | ||
54 | FlexibleContexts | ||
55 | FlexibleInstances | ||
56 | EmptyDataDecls | ||
57 | NoMonomorphismRestriction | ||
58 | DeriveDataTypeable | ||
59 | ViewPatterns | ||
60 | TupleSections | ||
61 | RecordWildCards | ||
62 | CPP | ||
63 | |||
64 | build-depends: | ||
65 | -- Due to a bug in GHC 8.0.1, we block its usage | ||
66 | -- See: https://ghc.haskell.org/trac/ghc/ticket/12130 | ||
67 | base >= 4.8.2.0 && < 4.9 | ||
68 | || >= 4.9.1.0 && < 5 | ||
69 | |||
70 | , yesod >= 1.6.0 && < 1.7 | ||
71 | , yesod-core >= 1.6.2 && < 1.7 | ||
72 | , yesod-auth >= 1.6.2 && < 1.7 | ||
73 | , yesod-static >= 1.6.0 && < 1.7 | ||
74 | , yesod-form >= 1.6.1 && < 1.7 | ||
75 | , classy-prelude >= 0.10.2 | ||
76 | , classy-prelude-conduit >= 0.10.2 | ||
77 | -- version 1.0 had a bug in reexporting Handler, causing trouble | ||
78 | , classy-prelude-yesod >= 0.10.2 && < 1.0 | ||
79 | || >= 1.1 | ||
80 | , bytestring >= 0.9 && < 0.11 | ||
81 | , text >= 0.11 && < 2.0 | ||
82 | , persistent >= 2.8.1 && < 2.9 | ||
83 | , persistent-postgresql >= 2.8.2 && < 2.9 | ||
84 | , persistent-template >= 2.0 && < 2.7 | ||
85 | , template-haskell | ||
86 | , shakespeare >= 2.0 && < 2.1 | ||
87 | , hjsmin >= 0.1 && < 0.3 | ||
88 | , monad-control >= 0.3 && < 1.1 | ||
89 | , wai-extra >= 3.0 && < 3.1 | ||
90 | , yaml >= 0.8 && < 0.9 | ||
91 | , http-conduit >= 2.3.0 && < 2.4 | ||
92 | , directory >= 1.1 && < 1.4 | ||
93 | , warp >= 3.0 && < 3.3 | ||
94 | , data-default | ||
95 | , aeson >= 1.2.4 && < 1.5 | ||
96 | , conduit >= 1.0 && < 2.0 | ||
97 | , monad-logger >= 0.3 && < 0.4 | ||
98 | , fast-logger >= 2.2 && < 2.5 | ||
99 | , wai-logger >= 2.2 && < 2.4 | ||
100 | , file-embed | ||
101 | , safe | ||
102 | , unordered-containers | ||
103 | , containers | ||
104 | , vector | ||
105 | , time | ||
106 | , case-insensitive | ||
107 | , wai | ||
108 | , mtl | ||
109 | , lens | ||
110 | , thermoprint-client | ||
111 | , hashids | ||
112 | , systemd | ||
113 | |||
114 | executable bar | ||
115 | if flag(library-only) | ||
116 | Buildable: False | ||
117 | |||
118 | main-is: main.hs | ||
119 | hs-source-dirs: app | ||
120 | build-depends: base, bar | ||
121 | |||
122 | ghc-options: -threaded -rtsopts -with-rtsopts=-N | ||
123 | |||
124 | extensions: TemplateHaskell | ||
125 | QuasiQuotes | ||
126 | OverloadedStrings | ||
127 | NoImplicitPrelude | ||
128 | MultiParamTypeClasses | ||
129 | TypeFamilies | ||
130 | GADTs | ||
131 | GeneralizedNewtypeDeriving | ||
132 | FlexibleContexts | ||
133 | FlexibleInstances | ||
134 | EmptyDataDecls | ||
135 | NoMonomorphismRestriction | ||
136 | DeriveDataTypeable | ||
137 | ViewPatterns | ||
138 | TupleSections | ||
139 | RecordWildCards | ||
140 | CPP | ||
diff --git a/package.yaml b/package.yaml new file mode 100644 index 0000000..e7ea47d --- /dev/null +++ b/package.yaml | |||
@@ -0,0 +1,106 @@ | |||
1 | name: bar | ||
2 | version: 0.6.6 | ||
3 | |||
4 | flags: | ||
5 | dev: | ||
6 | description: Turn on development settings | ||
7 | default: false | ||
8 | manual: false | ||
9 | library-only: | ||
10 | description: Build for use with "yesod devel" | ||
11 | default: false | ||
12 | manual: false | ||
13 | thermoprint: | ||
14 | description: Use thermoprint-client | ||
15 | default: false | ||
16 | manual: false | ||
17 | |||
18 | when: | ||
19 | - condition: flag(dev) || flag(library-only) | ||
20 | then: | ||
21 | cpp-options: -DDEVELOPMENT | ||
22 | ghc-options: -Wall -fwarn-tabs -O0 | ||
23 | else: | ||
24 | ghc-options: -Wall -fwarn-tabs -O2 | ||
25 | - condition: flag(thermoprint) | ||
26 | cpp-options: -DTHERMOPRINT | ||
27 | dependencies: | ||
28 | - thermoprint-client | ||
29 | |||
30 | default-extensions: | ||
31 | - DeriveGeneric | ||
32 | - TupleSections | ||
33 | - RecordWildCards | ||
34 | - DeriveDataTypeable | ||
35 | - EmptyDataDecls | ||
36 | - FlexibleContexts | ||
37 | - FlexibleInstances | ||
38 | - TypeFamilies | ||
39 | - MultiParamTypeClasses | ||
40 | - NoImplicitPrelude | ||
41 | - PatternGuards | ||
42 | - DeriveFunctor | ||
43 | - GADTs | ||
44 | - CPP | ||
45 | - TemplateHaskell | ||
46 | - ViewPatterns | ||
47 | - PatternGuards | ||
48 | - QuasiQuotes | ||
49 | - FunctionalDependencies | ||
50 | - OverloadedStrings | ||
51 | |||
52 | other-extensions: | ||
53 | - GeneralizedNewtypeDeriving | ||
54 | - ApplicativeDo | ||
55 | - PackageImports | ||
56 | |||
57 | library: | ||
58 | source-dirs: . | ||
59 | dependencies: | ||
60 | - base | ||
61 | - yesod | ||
62 | - yesod-core | ||
63 | - yesod-static | ||
64 | - yesod-form | ||
65 | - classy-prelude | ||
66 | - classy-prelude-yesod | ||
67 | - bytestring | ||
68 | - text | ||
69 | - persistent | ||
70 | - persistent-postgresql | ||
71 | - persistent-template | ||
72 | - template-haskell | ||
73 | - shakespeare | ||
74 | - wai-extra | ||
75 | - yaml | ||
76 | - http-conduit | ||
77 | - warp | ||
78 | - aeson | ||
79 | - conduit | ||
80 | - monad-logger | ||
81 | - fast-logger | ||
82 | - wai-logger | ||
83 | - file-embed | ||
84 | - unordered-containers | ||
85 | - containers | ||
86 | - vector | ||
87 | - time | ||
88 | - wai | ||
89 | - mtl | ||
90 | - lens | ||
91 | - hashids | ||
92 | - systemd | ||
93 | |||
94 | executables: | ||
95 | bar: | ||
96 | when: | ||
97 | - condition: flag(library-only) | ||
98 | buildable: false | ||
99 | main: main.hs | ||
100 | source-dirs: app | ||
101 | dependencies: | ||
102 | - base | ||
103 | - bar | ||
104 | - foreign-store | ||
105 | - warp | ||
106 | ghc-options: -threaded -rtsopts -with-rtsopts=-N | ||
diff --git a/stack.nix b/stack.nix new file mode 100644 index 0000000..98b31c1 --- /dev/null +++ b/stack.nix | |||
@@ -0,0 +1,14 @@ | |||
1 | { ghc, nixpkgs ? (import <nixos> {}) }: | ||
2 | |||
3 | let | ||
4 | inherit (nixpkgs) haskell pkgs; | ||
5 | haskellPackages = if ghc.version == pkgs.haskellPackages.ghc.version then pkgs.haskellPackages else pkgs.haskell.packages."ghc${builtins.replaceStrings ["."] [""] ghc.version}"; | ||
6 | in haskell.lib.buildStackProject { | ||
7 | inherit ghc; | ||
8 | name = "stackenv"; | ||
9 | buildInputs = (with pkgs; | ||
10 | [ postgresql zlib | ||
11 | ]) ++ (with haskellPackages; | ||
12 | [ yesod-bin | ||
13 | ]); | ||
14 | } | ||
@@ -15,7 +15,7 @@ | |||
15 | # resolver: | 15 | # resolver: |
16 | # name: custom-snapshot | 16 | # name: custom-snapshot |
17 | # location: "./custom-snapshot.yaml" | 17 | # location: "./custom-snapshot.yaml" |
18 | resolver: ghc-8.2.2 | 18 | resolver: lts-11.22 |
19 | 19 | ||
20 | # User packages to be built. | 20 | # User packages to be built. |
21 | # Various formats can be used as shown in the example below. | 21 | # Various formats can be used as shown in the example below. |
@@ -36,10 +36,21 @@ resolver: ghc-8.2.2 | |||
36 | # non-dependency (i.e. a user package), and its test suites and benchmarks | 36 | # non-dependency (i.e. a user package), and its test suites and benchmarks |
37 | # will not be run. This is useful for tweaking upstream packages. | 37 | # will not be run. This is useful for tweaking upstream packages. |
38 | packages: | 38 | packages: |
39 | - '.' | 39 | - '.' |
40 | - location: ../thermoprint/client | ||
41 | extra-dep: true | ||
42 | - location: ../thermoprint/spec | ||
43 | extra-dep: true | ||
44 | - location: | ||
45 | git: https://github.com/pngwjpgh/encoding.git | ||
46 | commit: f07769687b5cab12bbcab55eab51d629d54c2023 | ||
47 | extra-dep: true | ||
48 | |||
40 | # Dependency packages to be pulled from upstream that are not in the resolver | 49 | # Dependency packages to be pulled from upstream that are not in the resolver |
41 | # (e.g., acme-missiles-0.3) | 50 | # (e.g., acme-missiles-0.3) |
42 | extra-deps: [] | 51 | extra-deps: |
52 | - systemd-1.1.2 | ||
53 | - cabal-test-quickcheck-0.1.8.1 | ||
43 | 54 | ||
44 | # Override default flag values for local packages and extra-deps | 55 | # Override default flag values for local packages and extra-deps |
45 | flags: {} | 56 | flags: {} |
@@ -48,7 +59,7 @@ flags: {} | |||
48 | extra-package-dbs: [] | 59 | extra-package-dbs: [] |
49 | 60 | ||
50 | # Control whether we use the GHC we find on the path | 61 | # Control whether we use the GHC we find on the path |
51 | system-ghc: true | 62 | # system-ghc: true |
52 | # | 63 | # |
53 | # Require a specific version of stack, using version ranges | 64 | # Require a specific version of stack, using version ranges |
54 | # require-stack-version: -any # Default | 65 | # require-stack-version: -any # Default |
@@ -65,9 +76,6 @@ system-ghc: true | |||
65 | # Allow a newer minor version of GHC than the snapshot specifies | 76 | # Allow a newer minor version of GHC than the snapshot specifies |
66 | # compiler-check: newer-minor | 77 | # compiler-check: newer-minor |
67 | nix: | 78 | nix: |
68 | enable: false | 79 | packages: [] |
69 | packages: | 80 | pure: false |
70 | - postgresql | 81 | shell-file: ./stack.nix |
71 | - zlib | ||
72 | - haskellPackages.yesod-bin | ||
73 | - haskellPackages.stack | ||
diff --git a/templates/list-no-thermoprint.hamlet b/templates/list-no-thermoprint.hamlet new file mode 100644 index 0000000..4292dc3 --- /dev/null +++ b/templates/list-no-thermoprint.hamlet | |||
@@ -0,0 +1,8 @@ | |||
1 | <div .table .main> | ||
2 | <div .tr .sepBelow> | ||
3 | <div .td>Item | ||
4 | <div .td>Type | ||
5 | $forall WithType item itemType <- Set.toAscList list | ||
6 | <div .tr .color> | ||
7 | <div .td .kind>#{item} | ||
8 | <div .td .type>#{itemType} | ||