24 lines
638 B
Haskell
24 lines
638 B
Haskell
|
|
module Main where
|
||
|
|
|
||
|
|
import MiniParser.Deploy
|
||
|
|
( DeployCommand (DeployCommand)
|
||
|
|
, Environment (Production, Staging)
|
||
|
|
, parseDeployCommand
|
||
|
|
, renderCommand
|
||
|
|
)
|
||
|
|
import System.Exit (die)
|
||
|
|
|
||
|
|
main :: IO ()
|
||
|
|
main =
|
||
|
|
case
|
||
|
|
( parseDeployCommand "deploy api production tags=blue,stable"
|
||
|
|
, parseDeployCommand "deploy worker staging"
|
||
|
|
, parseDeployCommand "bad input"
|
||
|
|
) of
|
||
|
|
( Right (DeployCommand "api" Production ["blue", "stable"])
|
||
|
|
, Right parsedWorker
|
||
|
|
, Left _
|
||
|
|
) | renderCommand parsedWorker == "deploy worker to staging with no tags" ->
|
||
|
|
putStrLn "test passed"
|
||
|
|
_ -> die "unexpected parser result"
|