slackbuilder/lib/SlackBuilder/Config.hs
Eugen Wissner eb68629653
All checks were successful
Build / audit (push) Successful in 16m16s
Build / test (push) Successful in 15m47s
Support x86-64 only downloads
2023-12-12 18:51:44 +01:00

37 lines
1018 B
Haskell

-- | 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