module Taskell.IO.Config.General ( Config , defaultConfig , parser , filename , debug ) where import ClassyPrelude import Data.Ini.Config import Taskell.IO.Config.Parser (noEmpty) data Config = Config { filename :: FilePath , debug :: Bool } defaultConfig :: Config defaultConfig = Config {filename = "taskell.md", debug = False} filenameP :: SectionParser String filenameP = maybe (filename defaultConfig) unpack . (noEmpty =<<) <$> fieldMb "filename" debugP :: SectionParser Bool debugP = fieldFlagDef "debug" False parser :: IniParser Config parser = fromMaybe defaultConfig <$> sectionMb "general" (Config <$> filenameP <*> debugP)