module Taskell.IO.Config.GitHub ( Config , defaultConfig , parser , token ) where import ClassyPrelude import Data.Ini.Config import Taskell.IO.HTTP.GitHub (GitHubToken) data Config = Config { Config -> Maybe GitHubToken token :: Maybe GitHubToken } defaultConfig :: Config defaultConfig :: Config defaultConfig = Config :: Maybe GitHubToken -> Config Config {token :: Maybe GitHubToken token = Maybe GitHubToken forall a. Maybe a Nothing} tokenP :: SectionParser (Maybe GitHubToken) tokenP :: SectionParser (Maybe GitHubToken) tokenP = GitHubToken -> SectionParser (Maybe GitHubToken) fieldMb GitHubToken "token" parser :: IniParser Config parser :: IniParser Config parser = Config -> Maybe Config -> Config forall a. a -> Maybe a -> a fromMaybe Config defaultConfig (Maybe Config -> Config) -> IniParser (Maybe Config) -> IniParser Config forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> GitHubToken -> SectionParser Config -> IniParser (Maybe Config) forall a. GitHubToken -> SectionParser a -> IniParser (Maybe a) sectionMb GitHubToken "github" (Maybe GitHubToken -> Config Config (Maybe GitHubToken -> Config) -> SectionParser (Maybe GitHubToken) -> SectionParser Config forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> SectionParser (Maybe GitHubToken) tokenP)