diff options
Diffstat (limited to 'app/Main.hs')
| -rw-r--r-- | app/Main.hs | 22 |
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" |
