on fa3af0d help sign in
52 lines 1.0 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE QuasiQuotes #-}
4module Config where
6import Data.Text (Text)
7import qualified Data.Yaml as Y
8import Data.Yaml (FromJSON(..), (.:))
9import Text.RawString.QQ
10import Data.ByteString (ByteString)
12configYaml :: ByteString
13configYaml = [r|
14resolver: lts-3.7
15packages:
16 - ./yesod-core
17 - ./yesod-static
18 - ./yesod-persistent
19 - ./yesod-newsfeed
20 - ./yesod-form
21 - ./yesod-auth
22 - ./yesod-auth-oauth
23 - ./yesod-sitemap
24 - ./yesod-test
25 - ./yesod-bin
26 - ./yesod
27 - ./yesod-eventsource
28 - ./yesod-websockets
30# Needed for LTS 2
31extra-deps:
32- wai-app-static-3.1.4.1
33|]
35data Config =
36 Config {
37 resolver :: Text
38 , packages :: [FilePath]
39 , extraDeps :: [Text]
40 } deriving (Eq, Show)
42instance FromJSON Config where
43 parseJSON (Y.Object v) =
44 Config <$>
45 v .: "resolver" <*>
46 v .: "packages" <*>
47 v .: "extra-deps"
48 parseJSON _ = fail "Expected Object for Config value"
50main :: IO ()
51main =
52 print $ (Y.decode configYaml :: Maybe Config)