diff options
Diffstat (limited to 'lib/SlackBuilder/Config.hs')
| -rw-r--r-- | lib/SlackBuilder/Config.hs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/SlackBuilder/Config.hs b/lib/SlackBuilder/Config.hs new file mode 100644 index 0000000..c2a7f0b --- /dev/null +++ b/lib/SlackBuilder/Config.hs @@ -0,0 +1,37 @@ +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) + +data MaintainerSettings = MaintainerSettings + { name :: !Text + , email :: !Text + } 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.text "name" .= name + <*> Toml.text "email" .= email |
