summaryrefslogtreecommitdiff
path: root/app/Main.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2023-08-15 10:33:19 +0200
committerEugen Wissner <belka@caraus.de>2023-08-15 10:33:19 +0200
commit6b15ccd0f53c7ffd57820fb15664ecadee74392a (patch)
tree20ba7c838a2be1e7bd0707ed098f505c43a4da79 /app/Main.hs
parent5a9e87cd5f65439ef8f2717b3b3e561f42f2e24c (diff)
downloadslackbuilder-6b15ccd0f53c7ffd57820fb15664ecadee74392a.tar.gz
Support repository path in commits
Diffstat (limited to 'app/Main.hs')
-rw-r--r--app/Main.hs22
1 files changed, 16 insertions, 6 deletions
diff --git a/app/Main.hs b/app/Main.hs
index 6901fa6..a90d19a 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -7,23 +7,33 @@ import Data.Maybe (fromMaybe)
import Options.Applicative (execParser)
import SlackBuilder.CommandLine
import SlackBuilder.Config
+import SlackBuilder.Trans
import SlackBuilder.Updater
import qualified Toml
import qualified Data.Text as Text
+import Control.Monad.Trans.Reader (ReaderT(..))
+import SlackBuilder.Download
main :: IO ()
main = do
programCommand <- execParser slackBuilderParser
settings <- Toml.decodeFile settingsCodec "config/config.toml"
- latestVersion <- case programCommand of
- PackagistCommand packagistArguments ->
- latestPackagist packagistArguments
- TextCommand textArguments -> latestText textArguments
- GhCommand ghArguments@GhArguments{ transform } ->
- latestGitHub settings ghArguments $ chooseTransformFunction transform
+ latestVersion <- flip runReaderT settings
+ $ runSlackBuilderT
+ $ executeCommand programCommand
Text.IO.putStrLn $ fromMaybe "" latestVersion
where
+ executeCommand = \case
+ PackagistCommand packagistArguments ->
+ latestPackagist packagistArguments
+ TextCommand textArguments -> latestText textArguments
+ GhCommand ghArguments@GhArguments{ transform }
+ -> latestGitHub ghArguments $ chooseTransformFunction transform
+ SlackBuildCommand packagePath version ->
+ updateSlackBuildVersion packagePath version >> pure Nothing
+ CommitCommand packagePath version ->
+ commit packagePath version >> pure Nothing
chooseTransformFunction (Just "php") = phpTransform
chooseTransformFunction (Just "rdiff-backup") = Text.stripPrefix "v"
chooseTransformFunction _ = stripPrefix "v"