module Dispatch (dispatch) where import Check import Compiler import Compiler.Types import Control.Monad (void) import Deployer import Deployer.Types import Dispatch.Types import Formatter import Parser import Seed import Types dispatch :: Dispatch -> Sparker () dispatch (DispatchParse fp) = do void $ parseFile fp -- Just parse, throw away the results. dispatch (DispatchFormat fp) = do sf <- parseFile fp str <- formatSparkFile sf liftIO $ putStrLn str dispatch (DispatchCompile cfr) = do deployments <- compileJob cfr outputCompiled deployments dispatch (DispatchCheck dcr) = do deps <- compileDeployerCardRef dcr seeded <- seedByCompiledCardRef dcr deps dcrs <- liftIO $ check seeded liftIO $ putStrLn $ formatDeploymentChecks $ zip seeded dcrs dispatch (DispatchDeploy dcr) = do deps <- compileDeployerCardRef dcr seeded <- seedByCompiledCardRef dcr deps dcrs <- liftIO $ check seeded deploy $ zip seeded dcrs compileDeployerCardRef :: DeployerCardReference -> Sparker [Deployment] compileDeployerCardRef (DeployerCardCompiled fp) = inputCompiled fp compileDeployerCardRef (DeployerCardUncompiled cfr) = compileJob cfr