gapi: Bring back puppet and langpuppet
This reverts commit e767655ede.
In addition, it applies required changes to function with the new CLI backend.
This commit is contained in:
committed by
James Shubin
parent
22873b3c3f
commit
29ec867ac7
@@ -58,9 +58,11 @@ type DeployArgs struct {
|
||||
NoGit bool `arg:"--no-git" help:"don't look at git commit id for safe deploys"`
|
||||
Force bool `arg:"--force" help:"force a new deploy, even if the safety chain would break"`
|
||||
|
||||
DeployEmpty *cliUtil.EmptyArgs `arg:"subcommand:empty" help:"deploy empty payload"`
|
||||
DeployLang *cliUtil.LangArgs `arg:"subcommand:lang" help:"deploy lang (mcl) payload"`
|
||||
DeployYaml *cliUtil.YamlArgs `arg:"subcommand:yaml" help:"deploy yaml graph payload"`
|
||||
DeployEmpty *cliUtil.EmptyArgs `arg:"subcommand:empty" help:"deploy empty payload"`
|
||||
DeployLang *cliUtil.LangArgs `arg:"subcommand:lang" help:"deploy lang (mcl) payload"`
|
||||
DeployYaml *cliUtil.YamlArgs `arg:"subcommand:yaml" help:"deploy yaml graph payload"`
|
||||
DeployPuppet *cliUtil.PuppetArgs `arg:"subcommand:puppet" help:"deploy puppet graph payload"`
|
||||
DeployLangPuppet *cliUtil.LangPuppetArgs `arg:"subcommand:langpuppet" help:"deploy langpuppet graph payload"`
|
||||
}
|
||||
|
||||
// Run executes the correct subcommand. It errors if there's ever an error. It
|
||||
@@ -87,6 +89,14 @@ func (obj *DeployArgs) Run(ctx context.Context, data *cliUtil.Data) (bool, error
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "yaml"
|
||||
args = cmd
|
||||
}
|
||||
if cmd := obj.DeployPuppet; cmd != nil {
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "puppet"
|
||||
args = cmd
|
||||
}
|
||||
if cmd := obj.DeployLangPuppet; cmd != nil {
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "langpuppet"
|
||||
args = cmd
|
||||
}
|
||||
|
||||
// XXX: workaround https://github.com/alexflint/go-arg/issues/239
|
||||
gapiNames := gapi.Names() // list of registered names
|
||||
|
||||
16
cli/run.go
16
cli/run.go
@@ -52,9 +52,11 @@ import (
|
||||
type RunArgs struct {
|
||||
lib.Config // embedded config (can't be a pointer) https://github.com/alexflint/go-arg/issues/240
|
||||
|
||||
RunEmpty *cliUtil.EmptyArgs `arg:"subcommand:empty" help:"run empty payload"`
|
||||
RunLang *cliUtil.LangArgs `arg:"subcommand:lang" help:"run lang (mcl) payload"`
|
||||
RunYaml *cliUtil.YamlArgs `arg:"subcommand:yaml" help:"run yaml graph payload"`
|
||||
RunEmpty *cliUtil.EmptyArgs `arg:"subcommand:empty" help:"run empty payload"`
|
||||
RunLang *cliUtil.LangArgs `arg:"subcommand:lang" help:"run lang (mcl) payload"`
|
||||
RunYaml *cliUtil.YamlArgs `arg:"subcommand:yaml" help:"run yaml graph payload"`
|
||||
RunPuppet *cliUtil.PuppetArgs `arg:"subcommand:puppet" help:"run puppet graph payload"`
|
||||
RunLangPuppet *cliUtil.LangPuppetArgs `arg:"subcommand:langpuppet" help:"run a combined lang/puppet graph payload"`
|
||||
}
|
||||
|
||||
// Run executes the correct subcommand. It errors if there's ever an error. It
|
||||
@@ -81,6 +83,14 @@ func (obj *RunArgs) Run(ctx context.Context, data *cliUtil.Data) (bool, error) {
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "yaml"
|
||||
args = cmd
|
||||
}
|
||||
if cmd := obj.RunPuppet; cmd != nil {
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "puppet"
|
||||
args = cmd
|
||||
}
|
||||
if cmd := obj.RunLangPuppet; cmd != nil {
|
||||
name = cliUtil.LookupSubcommand(obj, cmd) // "langpuppet"
|
||||
args = cmd
|
||||
}
|
||||
|
||||
// XXX: workaround https://github.com/alexflint/go-arg/issues/239
|
||||
lists := [][]string{
|
||||
|
||||
@@ -102,3 +102,50 @@ type YamlArgs struct {
|
||||
// Input is the input yaml code or file path or any input specification.
|
||||
Input string `arg:"positional,required"`
|
||||
}
|
||||
|
||||
// PuppetArgs is the puppet CLI parsing structure and type of the parsed result.
|
||||
type PuppetArgs struct {
|
||||
// Input is the input puppet code or file path or just "agent".
|
||||
Input string `arg:"positional,required"`
|
||||
|
||||
// PuppetConf is the optional path to a puppet.conf config file.
|
||||
PuppetConf string `arg:"--puppet-conf" help:"full path to the puppet.conf file to use"`
|
||||
}
|
||||
|
||||
// LangPuppetArgs is the langpuppet CLI parsing structure and type of the parsed
|
||||
// result.
|
||||
type LangPuppetArgs struct {
|
||||
// LangInput is the input mcl code or file path or any input specification.
|
||||
LangInput string `arg:"--lang,required" help:"the input parameter for the lang module"`
|
||||
|
||||
// PuppetInput is the input puppet code or file path or just "agent".
|
||||
PuppetInput string `arg:"--puppet,required" help:"the input parameter for the puppet module"`
|
||||
|
||||
// copy-pasted from PuppetArgs
|
||||
|
||||
// PuppetConf is the optional path to a puppet.conf config file.
|
||||
PuppetConf string `arg:"--puppet-conf" help:"full path to the puppet.conf file to use"`
|
||||
|
||||
// end PuppetArgs
|
||||
|
||||
// copy-pasted from LangArgs
|
||||
|
||||
// TODO: removed (temporarily?)
|
||||
//Stdin bool `arg:"--stdin" help:"use passthrough stdin"`
|
||||
|
||||
Download bool `arg:"--download" help:"download any missing imports"`
|
||||
OnlyDownload bool `arg:"--only-download" help:"stop after downloading any missing imports"`
|
||||
Update bool `arg:"--update" help:"update all dependencies to the latest versions"`
|
||||
|
||||
OnlyUnify bool `arg:"--only-unify" help:"stop after type unification"`
|
||||
SkipUnify bool `arg:"--skip-unify" help:"skip type unification"`
|
||||
|
||||
Depth int `arg:"--depth" default:"-1" help:"max recursion depth limit (-1 is unlimited)"`
|
||||
|
||||
// The default of 0 means any error is a failure by default.
|
||||
Retry int `arg:"--depth" help:"max number of retries (-1 is unlimited)"`
|
||||
|
||||
ModulePath string `arg:"--module-path,env:MGMT_MODULE_PATH" help:"choose the modules path (absolute)"`
|
||||
|
||||
// end LangArgs
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user