30 lines
625 B
Haskell
30 lines
625 B
Haskell
|
|
module Main where
|
||
|
|
|
||
|
|
import MiniAudit.Rollout
|
||
|
|
( parseJob
|
||
|
|
, renderAudit
|
||
|
|
, renderReport
|
||
|
|
, runRollout
|
||
|
|
)
|
||
|
|
import System.Environment (getArgs)
|
||
|
|
import System.Exit (die)
|
||
|
|
|
||
|
|
main :: IO ()
|
||
|
|
main = do
|
||
|
|
args <- getArgs
|
||
|
|
let inputArgs =
|
||
|
|
case args of
|
||
|
|
[] -> ["api:production:canary:20:3", "worker:staging:rolling:0:2"]
|
||
|
|
_ -> args
|
||
|
|
|
||
|
|
case traverse parseJob inputArgs of
|
||
|
|
Left err -> die err
|
||
|
|
Right jobs ->
|
||
|
|
mapM_
|
||
|
|
( \job -> do
|
||
|
|
let (report, auditLog) = runRollout job
|
||
|
|
putStrLn (renderReport report)
|
||
|
|
putStrLn (renderAudit auditLog)
|
||
|
|
)
|
||
|
|
jobs
|