Split the code into library and application
This commit is contained in:
37
lib/SlackBuilder/Config.hs
Normal file
37
lib/SlackBuilder/Config.hs
Normal file
@@ -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
|
Reference in New Issue
Block a user