on master help sign in
Added default config printing
ffe9aediko
app/Main.hs+8−1
@@ -1,6 +1,13 @@
1module Main (main) where
1module Main (main) where
2
2
3+import qualified Data.ByteString.Char8 as BS
4+import Data.Yaml
3import Server
5import Server
6+import Server.Config
7+import System.Environment
4
8
5main :: IO ()
9main :: IO ()
10+main = getArgs >>= \case
6−main = runServer
11+ [] -> runServer
12+ ["default"] -> putStrLn . BS.unpack . encode $ defaultConfig
13+ xs -> error . show $ xs
src/Server/Config.hs+8
@@ -40,12 +40,20 @@ instance FromJSON ByteString where
40 parseJSON (String s) = return . BS.pack . T.unpack $ s
40 parseJSON (String s) = return . BS.pack . T.unpack $ s
41 parseJSON _ = fail "not a string"
41 parseJSON _ = fail "not a string"
42
42
43+instance ToJSON ByteString where
44+ toJSON = String . T.pack . BS.unpack
45+
43instance FromJSON Severity where
46instance FromJSON Severity where
44 parseJSON (String s) = maybe (fail "oh no") return . readMaybe . T.unpack $ s
47 parseJSON (String s) = maybe (fail "oh no") return . readMaybe . T.unpack $ s
45 parseJSON _ = fail "not a string"
48 parseJSON _ = fail "not a string"
46
49
50+instance ToJSON Severity where
51+ toJSON = String . T.pack . show
52+
47instance FromJSON Config
53instance FromJSON Config
48
54
55+instance ToJSON Config
56+
49defaultConfig :: Config
57defaultConfig :: Config
50defaultConfig =
58defaultConfig =
51 Config
59 Config