chore: first step towards migration to cobra (#637)
I will start by making as much as possible code in `main.go` independent from urfave/cli, and this illustrates how we can do that by introducing a Config interface that delegates any config value fetch to urfave/cli. We will implement an cobra/pflag impl of the interface when helmfile finally migrates to cobra.
This commit is contained in:
parent
c68fc5bc50
commit
f6057a1cca
47
main.go
47
main.go
|
|
@ -193,7 +193,7 @@ func main() {
|
||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
_, errs := executeDiffCommand(c, state, helm, c.Bool("detailed-exitcode"), c.Bool("suppress-secrets"))
|
_, errs := ExecuteDiffCommand(NewUrfaveCliConfigImpl(c), state, helm, c.Bool("detailed-exitcode"), c.Bool("suppress-secrets"))
|
||||||
return errs
|
return errs
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
@ -366,7 +366,7 @@ func main() {
|
||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
releases, errs := executeDiffCommand(c, st, helm, true, c.Bool("suppress-secrets"))
|
releases, errs := ExecuteDiffCommand(NewUrfaveCliConfigImpl(c), st, helm, true, c.Bool("suppress-secrets"))
|
||||||
|
|
||||||
releasesToBeDeleted, err := st.DetectReleasesToBeDeleted(helm)
|
releasesToBeDeleted, err := st.DetectReleasesToBeDeleted(helm)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -616,17 +616,48 @@ func executeTemplateCommand(c *cli.Context, state *state.HelmState, helm helmexe
|
||||||
return state.TemplateReleases(helm, values, args, workers)
|
return state.TemplateReleases(helm, values, args, workers)
|
||||||
}
|
}
|
||||||
|
|
||||||
func executeDiffCommand(c *cli.Context, st *state.HelmState, helm helmexec.Interface, detailedExitCode, suppressSecrets bool) ([]*state.ReleaseSpec, []error) {
|
type Config interface {
|
||||||
args := argparser.GetArgs(c.String("args"), st)
|
HasCommandName(string) bool
|
||||||
|
Values() []string
|
||||||
|
Concurrency() int
|
||||||
|
Args() string
|
||||||
|
}
|
||||||
|
|
||||||
|
type configImpl struct {
|
||||||
|
c *cli.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewUrfaveCliConfigImpl(c *cli.Context) configImpl {
|
||||||
|
return configImpl{
|
||||||
|
c: c,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c configImpl) Values() []string {
|
||||||
|
return c.c.StringSlice("values")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c configImpl) Args() string {
|
||||||
|
return c.c.String("args")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c configImpl) Concurrency() int {
|
||||||
|
return c.c.Int("concurrency")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c configImpl) HasCommandName(name string) bool {
|
||||||
|
return c.c.Command.HasName(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExecuteDiffCommand(c Config, st *state.HelmState, helm helmexec.Interface, detailedExitCode, suppressSecrets bool) ([]*state.ReleaseSpec, []error) {
|
||||||
|
args := argparser.GetArgs(c.Args(), st)
|
||||||
if len(args) > 0 {
|
if len(args) > 0 {
|
||||||
helm.SetExtraArgs(args...)
|
helm.SetExtraArgs(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
values := c.StringSlice("values")
|
triggerCleanupEvents := c.HasCommandName("diff")
|
||||||
workers := c.Int("concurrency")
|
|
||||||
triggerCleanupEvents := c.Command.HasName("diff")
|
|
||||||
|
|
||||||
return st.DiffReleases(helm, values, workers, detailedExitCode, suppressSecrets, triggerCleanupEvents)
|
return st.DiffReleases(helm, c.Values(), c.Concurrency(), detailedExitCode, suppressSecrets, triggerCleanupEvents)
|
||||||
}
|
}
|
||||||
|
|
||||||
func findAndIterateOverDesiredStatesUsingFlags(c *cli.Context, converge func(*state.HelmState, helmexec.Interface, app.Context) []error) error {
|
func findAndIterateOverDesiredStatesUsingFlags(c *cli.Context, converge func(*state.HelmState, helmexec.Interface, app.Context) []error) error {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue