-- | Configuration file. module SlackBuilder.Config ( Settings(..) , MaintainerSettings(..) , settingsCodec ) where import Data.Text (Text) import Toml ((.=)) import qualified Toml data Settings = Settings { ghToken :: !Text , repository :: !FilePath , branch :: Text , downloadURL :: Text , remotePath :: Text , maintainer :: MaintainerSettings } deriving (Eq, Show) newtype MaintainerSettings = MaintainerSettings { signature :: Bool } deriving (Eq, Show) settingsCodec :: Toml.TomlCodec Settings settingsCodec = Settings <$> Toml.text "gh_token" .= ghToken <*> Toml.string "repository" .= repository <*> Toml.text "branch" .= branch <*> Toml.text "download_url" .= downloadURL <*> Toml.text "remote_path" .= remotePath <*> Toml.table maintainerSettingsCodec "maintainer" .= maintainer maintainerSettingsCodec :: Toml.TomlCodec MaintainerSettings maintainerSettingsCodec = MaintainerSettings <$> Toml.bool "signature" .= signature