stackctl-1.3.0.0: src/Stackctl/Commands.hs
module Stackctl.Commands
( cat
, capture
, changes
, deploy
, version
) where
import Stackctl.Prelude
import Stackctl.Colors
import Stackctl.DirectoryOption
import Stackctl.FilterOption
import Stackctl.Spec.Capture
import Stackctl.Spec.Cat
import Stackctl.Spec.Changes
import Stackctl.Spec.Deploy
import Stackctl.Subcommand
import Stackctl.VerboseOption
import Stackctl.Version
cat
:: ( HasColorOption options
, HasVerboseOption options
, HasDirectoryOption options
, HasFilterOption options
)
=> Subcommand options CatOptions
cat = Subcommand
{ name = "cat"
, description = "Pretty-print specifications"
, parse = parseCatOptions
, run = runAppSubcommand runCat
}
capture
:: ( HasColorOption options
, HasVerboseOption options
, HasDirectoryOption options
)
=> Subcommand options CaptureOptions
capture = Subcommand
{ name = "capture"
, description = "Capture deployed Stacks as specifications"
, parse = parseCaptureOptions
, run = runAppSubcommand runCapture
}
changes
:: ( HasColorOption options
, HasVerboseOption options
, HasDirectoryOption options
, HasFilterOption options
)
=> Subcommand options ChangesOptions
changes = Subcommand
{ name = "changes"
, description = "Review changes between specification and deployed state"
, parse = parseChangesOptions
, run = runAppSubcommand runChanges
}
deploy
:: ( HasColorOption options
, HasVerboseOption options
, HasDirectoryOption options
, HasFilterOption options
)
=> Subcommand options DeployOptions
deploy = Subcommand
{ name = "deploy"
, description = "Deploy specifications"
, parse = parseDeployOptions
, run = runAppSubcommand runDeploy
}
version :: Subcommand options ()
version = Subcommand
{ name = "version"
, description = "Output the version"
, parse = pure ()
, run = \() _ -> logVersion
}