Add modules for config file

This commit is contained in:
jgk
2021-03-22 22:42:07 +01:00
parent 54b28db249
commit e296e5d841
3 changed files with 81 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
{-# LANGUAGE DeriveGeneric #-}
module LoadConfig
where
import Data.Aeson
import GHC.Generics
import Foreign.C.Types
data Configuration = Configuration
{ windowxsize :: Int
, windowysize :: Int
} deriving (Generic, Show)
instance ToJSON Configuration where
toEncoding = genericToEncoding defaultOptions
instance FromJSON Configuration
loadConfig :: IO (Int,Int)
loadConfig = do
mayConfig <- decodeFileStrict "config.json"
case mayConfig of
Just config -> return (windowxsize config,windowysize config)
Nothing -> do
putStrLn "invalid config.json, loading default config"
return (800,600)