27 lines
1.0 KiB
Haskell
27 lines
1.0 KiB
Haskell
module Main where
|
|
|
|
import MiniCli.Command
|
|
( Command (PromoteCommand, ValidateCommand)
|
|
, Environment (Production)
|
|
, PromoteSpec (PromoteSpec)
|
|
, ReleaseTrack (Stable)
|
|
, ValidateSpec (ValidateSpec)
|
|
, renderCommand
|
|
, runCliParser
|
|
)
|
|
import System.Exit (die)
|
|
|
|
main :: IO ()
|
|
main =
|
|
case
|
|
( runCliParser ["validate", "--service", "api", "--env", "production", "--replicas", "3", "--track", "stable"]
|
|
, runCliParser ["promote", "--service", "api", "--from-tag", "blue", "--to-tag", "green", "--owner", "platform", "--owner", "security", "--dry-run"]
|
|
, runCliParser ["validate", "--service", "api", "--replicas", "3", "--track", "stable"]
|
|
) of
|
|
( Right (ValidateCommand (ValidateSpec "api" Production 3 Stable))
|
|
, Right promoteCommand@(PromoteCommand (PromoteSpec "api" "blue" "green" ["platform", "security"] True))
|
|
, Left _
|
|
) | renderCommand promoteCommand == "promote api, from blue, to green, owners platform/security, dry-run yes" ->
|
|
putStrLn "test passed"
|
|
_ -> die "unexpected optparse result"
|