Merge pull request #3119 from phanimarupaka/MakeRecurseLogicPublic

Make recurse logic public
This commit is contained in:
Kubernetes Prow Robot
2020-10-19 17:28:07 -07:00
committed by GitHub
33 changed files with 217 additions and 198 deletions

View File

@@ -10,6 +10,7 @@ import (
"sigs.k8s.io/kustomize/cmd/config/internal/commands" "sigs.k8s.io/kustomize/cmd/config/internal/commands"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/api" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/api"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/tutorials" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/tutorials"
"sigs.k8s.io/kustomize/cmd/config/runner"
) )
// Export commands publicly for composition // Export commands publicly for composition
@@ -35,13 +36,13 @@ var (
Wrap = commands.WrapCommand Wrap = commands.WrapCommand
XArgs = commands.XArgsCommand XArgs = commands.XArgsCommand
StackOnError = &commands.StackOnError StackOnError = &runner.StackOnError
ExitOnError = &commands.ExitOnError ExitOnError = &runner.ExitOnError
) )
// AddCommands adds the cfg and fn commands to kustomize. // AddCommands adds the cfg and fn commands to kustomize.
func AddCommands(root *cobra.Command, name string) *cobra.Command { func AddCommands(root *cobra.Command, name string) *cobra.Command {
commands.ExitOnError = true runner.ExitOnError = true
root.PersistentFlags().BoolVar(StackOnError, "stack-trace", false, root.PersistentFlags().BoolVar(StackOnError, "stack-trace", false,
"print a stack-trace on error") "print a stack-trace on error")

View File

@@ -11,6 +11,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/yaml" "sigs.k8s.io/kustomize/kyaml/yaml"
@@ -27,7 +28,7 @@ func NewAnnotateRunner(parent string) *AnnotateRunner {
Example: commands.AnnotateExamples, Example: commands.AnnotateExamples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(parent, c) runner.FixDocs(parent, c)
r.Command = c r.Command = c
c.Flags().StringVar(&r.Kind, "kind", "", "Resource kind to annotate") c.Flags().StringVar(&r.Kind, "kind", "", "Resource kind to annotate")
c.Flags().StringVar(&r.ApiVersion, "apiVersion", "", "Resource apiVersion to annotate") c.Flags().StringVar(&r.ApiVersion, "apiVersion", "", "Resource apiVersion to annotate")
@@ -62,29 +63,29 @@ func (r *AnnotateRunner) runE(c *cobra.Command, args []string) error {
input = []kio.Reader{rw} input = []kio.Reader{rw}
output = []kio.Writer{rw} output = []kio.Writer{rw}
return handleError(c, kio.Pipeline{ return runner.HandleError(c, kio.Pipeline{
Inputs: input, Inputs: input,
Filters: []kio.Filter{r}, Filters: []kio.Filter{r},
Outputs: output, Outputs: output,
}.Execute()) }.Execute())
} }
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
needOpenAPI: false, NeedOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
rootPkgPath: args[0], RootPkgPath: args[0],
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return err return err
} }
return nil return nil
} }
func (r *AnnotateRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *AnnotateRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
rw := &kio.LocalPackageReadWriter{ rw := &kio.LocalPackageReadWriter{
PackagePath: pkgPath, PackagePath: pkgPath,
NoDeleteFiles: true, NoDeleteFiles: true,

View File

@@ -13,6 +13,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
@@ -30,7 +31,7 @@ func GetCatRunner(name string) *CatRunner {
RunE: r.runE, RunE: r.runE,
Args: cobra.MaximumNArgs(1), Args: cobra.MaximumNArgs(1),
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().BoolVar(&r.Format, "format", true, c.Flags().BoolVar(&r.Format, "format", true,
"format resource config yaml before printing.") "format resource config yaml before printing.")
c.Flags().BoolVar(&r.KeepAnnotations, "annotate", false, c.Flags().BoolVar(&r.KeepAnnotations, "annotate", false,
@@ -95,21 +96,21 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
if err != nil { if err != nil {
return err return err
} }
return handleError(c, kio.Pipeline{Inputs: []kio.Reader{input}, Filters: r.catFilters(), Outputs: outputs}.Execute()) return runner.HandleError(c, kio.Pipeline{Inputs: []kio.Reader{input}, Filters: r.catFilters(), Outputs: outputs}.Execute())
} }
out := &bytes.Buffer{} out := &bytes.Buffer{}
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
writer: out, Writer: out,
needOpenAPI: false, NeedOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
rootPkgPath: args[0], RootPkgPath: args[0],
skipPkgPathPrint: true, SkipPkgPathPrint: true,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return err return err
} }
@@ -120,7 +121,7 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
return nil return nil
} }
func (r *CatRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *CatRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()} input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()}
out := &bytes.Buffer{} out := &bytes.Buffer{}
outputs, err := r.out(out) outputs, err := r.out(out)

View File

@@ -15,6 +15,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/setters" "sigs.k8s.io/kustomize/kyaml/setters"
@@ -63,7 +64,7 @@ func NewCreateSetterRunner(parent string) *CreateSetterRunner {
set.Flags().BoolVarP(&r.CreateSetter.RecurseSubPackages, "recurse-subpackages", "R", false, set.Flags().BoolVarP(&r.CreateSetter.RecurseSubPackages, "recurse-subpackages", "R", false,
"creates setter recursively in all the nested subpackages") "creates setter recursively in all the nested subpackages")
set.Flags().MarkHidden("version") set.Flags().MarkHidden("version")
fixDocs(parent, set) runner.FixDocs(parent, set)
r.Command = set r.Command = set
return r return r
} }
@@ -81,7 +82,7 @@ type CreateSetterRunner struct {
} }
func (r *CreateSetterRunner) runE(c *cobra.Command, args []string) error { func (r *CreateSetterRunner) runE(c *cobra.Command, args []string) error {
return handleError(c, r.createSetter(c, args)) return runner.HandleError(c, r.createSetter(c, args))
} }
func (r *CreateSetterRunner) preRunE(c *cobra.Command, args []string) error { func (r *CreateSetterRunner) preRunE(c *cobra.Command, args []string) error {
@@ -179,16 +180,16 @@ func (r *CreateSetterRunner) processSchema() error {
func (r *CreateSetterRunner) createSetter(c *cobra.Command, args []string) error { func (r *CreateSetterRunner) createSetter(c *cobra.Command, args []string) error {
if setterVersion == "v2" { if setterVersion == "v2" {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.CreateSetter.RecurseSubPackages, RecurseSubPackages: r.CreateSetter.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
@@ -204,7 +205,7 @@ func (r *CreateSetterRunner) createSetter(c *cobra.Command, args []string) error
return nil return nil
} }
func (r *CreateSetterRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *CreateSetterRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.CreateSetter = settersutil.SetterCreator{ r.CreateSetter = settersutil.SetterCreator{
Name: r.CreateSetter.Name, Name: r.CreateSetter.Name,
SetBy: r.CreateSetter.SetBy, SetBy: r.CreateSetter.SetBy,

View File

@@ -10,6 +10,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil" "sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
) )
@@ -32,7 +33,7 @@ func NewCreateSubstitutionRunner(parent string) *CreateSubstitutionRunner {
"creates substitution recursively in all the nested subpackages") "creates substitution recursively in all the nested subpackages")
_ = cs.MarkFlagRequired("pattern") _ = cs.MarkFlagRequired("pattern")
_ = cs.MarkFlagRequired("field-value") _ = cs.MarkFlagRequired("field-value")
fixDocs(parent, cs) runner.FixDocs(parent, cs)
r.Command = cs r.Command = cs
return r return r
} }
@@ -49,22 +50,22 @@ type CreateSubstitutionRunner struct {
} }
func (r *CreateSubstitutionRunner) runE(c *cobra.Command, args []string) error { func (r *CreateSubstitutionRunner) runE(c *cobra.Command, args []string) error {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.CreateSubstitution.RecurseSubPackages, RecurseSubPackages: r.CreateSubstitution.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
func (r *CreateSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *CreateSubstitutionRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.CreateSubstitution = settersutil.SubstitutionCreator{ r.CreateSubstitution = settersutil.SubstitutionCreator{
Name: r.CreateSubstitution.Name, Name: r.CreateSubstitution.Name,
FieldName: r.CreateSubstitution.FieldName, FieldName: r.CreateSubstitution.FieldName,

View File

@@ -11,6 +11,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/fieldmeta" "sigs.k8s.io/kustomize/kyaml/fieldmeta"
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil" "sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
) )
@@ -29,7 +30,7 @@ func NewDeleteSetterRunner(parent string) *DeleteSetterRunner {
} }
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false, c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false,
"deletes setter recursively in all the nested subpackages") "deletes setter recursively in all the nested subpackages")
fixDocs(parent, c) runner.FixDocs(parent, c)
r.Command = c r.Command = c
return r return r
@@ -56,22 +57,21 @@ func (r *DeleteSetterRunner) preRunE(c *cobra.Command, args []string) error {
} }
func (r *DeleteSetterRunner) runE(c *cobra.Command, args []string) error { func (r *DeleteSetterRunner) runE(c *cobra.Command, args []string) error {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
func (r *DeleteSetterRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *DeleteSetterRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.DeleteSetter = settersutil.DeleterCreator{ r.DeleteSetter = settersutil.DeleterCreator{
Name: r.DeleteSetter.Name, Name: r.DeleteSetter.Name,
DefinitionPrefix: fieldmeta.SetterDefinitionPrefix, DefinitionPrefix: fieldmeta.SetterDefinitionPrefix,

View File

@@ -10,6 +10,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/fieldmeta" "sigs.k8s.io/kustomize/kyaml/fieldmeta"
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil" "sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
) )
@@ -25,7 +26,7 @@ func NewDeleteSubstitutionRunner(parent string) *DeleteSubstitutionRunner {
} }
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false, c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false,
"deletes substitution recursively in all the nested subpackages") "deletes substitution recursively in all the nested subpackages")
fixDocs(parent, c) runner.FixDocs(parent, c)
r.Command = c r.Command = c
return r return r
@@ -52,21 +53,21 @@ func (r *DeleteSubstitutionRunner) preRunE(c *cobra.Command, args []string) erro
} }
func (r *DeleteSubstitutionRunner) runE(c *cobra.Command, args []string) error { func (r *DeleteSubstitutionRunner) runE(c *cobra.Command, args []string) error {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
func (r *DeleteSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *DeleteSubstitutionRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.DeleteSubstitution = settersutil.DeleterCreator{ r.DeleteSubstitution = settersutil.DeleterCreator{
Name: r.DeleteSubstitution.Name, Name: r.DeleteSubstitution.Name,
DefinitionPrefix: fieldmeta.SubstitutionDefinitionPrefix, DefinitionPrefix: fieldmeta.SubstitutionDefinitionPrefix,

View File

@@ -11,6 +11,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/krmfile" "sigs.k8s.io/kustomize/kyaml/krmfile"
) )
@@ -26,7 +27,7 @@ func GetInitRunner(name string) *InitRunner {
Example: commands.InitExamples, Example: commands.InitExamples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
r.Command = c r.Command = c
return r return r
} }

View File

@@ -14,6 +14,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/fieldmeta" "sigs.k8s.io/kustomize/kyaml/fieldmeta"
"sigs.k8s.io/kustomize/kyaml/setters" "sigs.k8s.io/kustomize/kyaml/setters"
"sigs.k8s.io/kustomize/kyaml/setters2" "sigs.k8s.io/kustomize/kyaml/setters2"
@@ -37,7 +38,7 @@ func NewListSettersRunner(parent string) *ListSettersRunner {
"include substitutions in the output") "include substitutions in the output")
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", true, c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", true,
"list setters recursively in all the nested subpackages") "list setters recursively in all the nested subpackages")
fixDocs(parent, c) runner.FixDocs(parent, c)
r.Command = c r.Command = c
return r return r
} }
@@ -67,24 +68,24 @@ func (r *ListSettersRunner) preRunE(c *cobra.Command, args []string) error {
func (r *ListSettersRunner) runE(c *cobra.Command, args []string) error { func (r *ListSettersRunner) runE(c *cobra.Command, args []string) error {
if setterVersion == "v2" { if setterVersion == "v2" {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
return handleError(c, lookup(r.Lookup, c, args)) return runner.HandleError(c, lookup(r.Lookup, c, args))
} }
func (r *ListSettersRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *ListSettersRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.List = setters2.List{ r.List = setters2.List{
Name: r.List.Name, Name: r.List.Name,
OpenAPIFileName: ext.KRMFileName(), OpenAPIFileName: ext.KRMFileName(),
@@ -130,7 +131,7 @@ func (r *ListSettersRunner) ListSetters(w io.Writer, openAPIPath, resourcePath s
if len(r.List.Setters) == 0 { if len(r.List.Setters) == 0 {
// exit non-0 if no matching setters are found // exit non-0 if no matching setters are found
if ExitOnError { if runner.ExitOnError {
os.Exit(1) os.Exit(1)
} }
} }

View File

@@ -13,6 +13,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/setters" "sigs.k8s.io/kustomize/kyaml/setters"
@@ -31,7 +32,7 @@ func NewSetRunner(parent string) *SetRunner {
PreRunE: r.preRunE, PreRunE: r.preRunE,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(parent, c) runner.FixDocs(parent, c)
r.Command = c r.Command = c
c.Flags().StringArrayVar(&r.Values, "values", []string{}, c.Flags().StringArrayVar(&r.Values, "values", []string{},
"optional flag, the values of the setter to be set to") "optional flag, the values of the setter to be set to")
@@ -131,26 +132,26 @@ func (r *SetRunner) preRunE(c *cobra.Command, args []string) error {
func (r *SetRunner) runE(c *cobra.Command, args []string) error { func (r *SetRunner) runE(c *cobra.Command, args []string) error {
if setterVersion == "v2" { if setterVersion == "v2" {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
needOpenAPI: true, NeedOpenAPI: true,
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
rootPkgPath: args[0], RootPkgPath: args[0],
recurseSubPackages: r.Set.RecurseSubPackages, RecurseSubPackages: r.Set.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return handleError(c, err) return runner.HandleError(c, err)
} }
return nil return nil
} }
if len(args) > 2 || c.Flag("values").Changed { if len(args) > 2 || c.Flag("values").Changed {
return handleError(c, r.perform(c, args)) return runner.HandleError(c, r.perform(c, args))
} }
return handleError(c, lookup(r.Lookup, c, args)) return runner.HandleError(c, lookup(r.Lookup, c, args))
} }
func (r *SetRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *SetRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
r.Set = settersutil.FieldSetter{ r.Set = settersutil.FieldSetter{
Name: r.Set.Name, Name: r.Set.Name,
Value: r.Set.Value, Value: r.Set.Value,

View File

@@ -10,6 +10,7 @@ import (
"path/filepath" "path/filepath"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
) )
@@ -135,5 +136,5 @@ func (r *WrapRunner) runE(c *cobra.Command, args []string) error {
Writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
WrappingKind: kio.ResourceListKind, WrappingKind: kio.ResourceListKind,
WrappingAPIVersion: kio.ResourceListAPIVersion}}}.Execute() WrappingAPIVersion: kio.ResourceListAPIVersion}}}.Execute()
return handleError(c, err) return runner.HandleError(c, err)
} }

View File

@@ -11,6 +11,7 @@ import (
"unicode" "unicode"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/yaml" "sigs.k8s.io/kustomize/kyaml/yaml"
) )
@@ -211,7 +212,7 @@ func (r *XArgsRunner) runE(c *cobra.Command, _ []string) error {
return err return err
} }
return handleError(c, run.Run()) return runner.HandleError(c, run.Run())
} }
func parseYNode(node *yaml.Node) string { func parseYNode(node *yaml.Node) string {

View File

@@ -11,6 +11,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/sets" "sigs.k8s.io/kustomize/kyaml/sets"
"sigs.k8s.io/kustomize/kyaml/yaml" "sigs.k8s.io/kustomize/kyaml/yaml"
@@ -26,7 +27,7 @@ func GetCountRunner(name string) *CountRunner {
Example: commands.CountExamples, Example: commands.CountExamples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().BoolVar(&r.Kind, "kind", true, c.Flags().BoolVar(&r.Kind, "kind", true,
"count resources by kind.") "count resources by kind.")
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", true, c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", true,
@@ -51,24 +52,24 @@ func (r *CountRunner) runE(c *cobra.Command, args []string) error {
if len(args) == 0 { if len(args) == 0 {
input := &kio.ByteReader{Reader: c.InOrStdin()} input := &kio.ByteReader{Reader: c.InOrStdin()}
return handleError(c, kio.Pipeline{ return runner.HandleError(c, kio.Pipeline{
Inputs: []kio.Reader{input}, Inputs: []kio.Reader{input},
Outputs: r.out(c.OutOrStdout()), Outputs: r.out(c.OutOrStdout()),
}.Execute()) }.Execute())
} }
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
needOpenAPI: false, NeedOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
rootPkgPath: args[0], RootPkgPath: args[0],
} }
return e.execute() return e.Execute()
} }
func (r *CountRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *CountRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()} input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()}
err := kio.Pipeline{ err := kio.Pipeline{

View File

@@ -10,6 +10,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
) )
@@ -25,7 +26,7 @@ func GetFmtRunner(name string) *FmtRunner {
RunE: r.runE, RunE: r.runE,
PreRunE: r.preRunE, PreRunE: r.preRunE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().StringVar(&r.FilenamePattern, "pattern", filters.DefaultFilenamePattern, c.Flags().StringVar(&r.FilenamePattern, "pattern", filters.DefaultFilenamePattern,
`pattern to use for generating filenames for resources -- may contain the following `pattern to use for generating filenames for resources -- may contain the following
formatting substitution verbs {'%n': 'metadata.name', '%s': 'metadata.namespace', '%k': 'kind'}`) formatting substitution verbs {'%n': 'metadata.name', '%s': 'metadata.namespace', '%k': 'kind'}`)
@@ -74,20 +75,20 @@ func (r *FmtRunner) runE(c *cobra.Command, args []string) error {
Writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
KeepReaderAnnotations: r.KeepAnnotations, KeepReaderAnnotations: r.KeepAnnotations,
} }
return handleError(c, kio.Pipeline{ return runner.HandleError(c, kio.Pipeline{
Inputs: []kio.Reader{rw}, Filters: r.fmtFilters(), Outputs: []kio.Writer{rw}}.Execute()) Inputs: []kio.Reader{rw}, Filters: r.fmtFilters(), Outputs: []kio.Writer{rw}}.Execute())
} }
for _, rootPkgPath := range args { for _, rootPkgPath := range args {
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
writer: c.OutOrStdout(), Writer: c.OutOrStdout(),
needOpenAPI: false, NeedOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
rootPkgPath: rootPkgPath, RootPkgPath: rootPkgPath,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return err return err
} }
@@ -95,7 +96,7 @@ func (r *FmtRunner) runE(c *cobra.Command, args []string) error {
return nil return nil
} }
func (r *FmtRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *FmtRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
rw := &kio.LocalPackageReadWriter{ rw := &kio.LocalPackageReadWriter{
NoDeleteFiles: true, NoDeleteFiles: true,
PackagePath: pkgPath, PackagePath: pkgPath,

View File

@@ -13,6 +13,7 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
) )
@@ -29,7 +30,7 @@ func GetGrepRunner(name string) *GrepRunner {
RunE: r.runE, RunE: r.runE,
Args: cobra.MaximumNArgs(2), Args: cobra.MaximumNArgs(2),
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().BoolVar(&r.KeepAnnotations, "annotate", true, c.Flags().BoolVar(&r.KeepAnnotations, "annotate", true,
"annotate resources with their file origins.") "annotate resources with their file origins.")
c.Flags().BoolVarP(&r.InvertMatch, "invert-match", "", false, c.Flags().BoolVarP(&r.InvertMatch, "invert-match", "", false,
@@ -66,7 +67,7 @@ func (r *GrepRunner) preRunE(c *cobra.Command, args []string) error {
return qa.Cmp(qb), err return qa.Cmp(qb), err
} }
parts, err := parseFieldPath(args[0]) parts, err := runner.ParseFieldPath(args[0])
if err != nil { if err != nil {
return err return err
} }
@@ -105,7 +106,7 @@ func (r *GrepRunner) preRunE(c *cobra.Command, args []string) error {
func (r *GrepRunner) runE(c *cobra.Command, args []string) error { func (r *GrepRunner) runE(c *cobra.Command, args []string) error {
if len(args) == 1 { if len(args) == 1 {
input := &kio.ByteReader{Reader: c.InOrStdin()} input := &kio.ByteReader{Reader: c.InOrStdin()}
return handleError(c, kio.Pipeline{ return runner.HandleError(c, kio.Pipeline{
Inputs: []kio.Reader{input}, Inputs: []kio.Reader{input},
Filters: []kio.Filter{r.GrepFilter}, Filters: []kio.Filter{r.GrepFilter},
Outputs: []kio.Writer{kio.ByteWriter{ Outputs: []kio.Writer{kio.ByteWriter{
@@ -117,16 +118,16 @@ func (r *GrepRunner) runE(c *cobra.Command, args []string) error {
out := bytes.Buffer{} out := bytes.Buffer{}
e := executeCmdOnPkgs{ e := runner.ExecuteCmdOnPkgs{
writer: &out, Writer: &out,
needOpenAPI: false, NeedOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, RecurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, CmdRunner: r,
rootPkgPath: args[1], RootPkgPath: args[1],
skipPkgPathPrint: true, SkipPkgPathPrint: true,
} }
err := e.execute() err := e.Execute()
if err != nil { if err != nil {
return err return err
} }
@@ -138,7 +139,7 @@ func (r *GrepRunner) runE(c *cobra.Command, args []string) error {
} }
func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *GrepRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()} input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: ext.KRMFileName()}
out := &bytes.Buffer{} out := &bytes.Buffer{}
err := kio.Pipeline{ err := kio.Pipeline{

View File

@@ -6,6 +6,7 @@ package commands
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
) )
@@ -19,7 +20,7 @@ func GetMergeRunner(name string) *MergeRunner {
Example: commands.MergeExamples, Example: commands.MergeExamples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
r.Command = c r.Command = c
r.Command.Flags().BoolVar(&r.InvertOrder, "invert-order", false, r.Command.Flags().BoolVar(&r.InvertOrder, "invert-order", false,
"if true, merge Resources in the reverse order") "if true, merge Resources in the reverse order")
@@ -64,5 +65,5 @@ func (r *MergeRunner) runE(c *cobra.Command, args []string) error {
} }
filters := []kio.Filter{filters.MergeFilter{}, filters.FormatFilter{}} filters := []kio.Filter{filters.MergeFilter{}, filters.FormatFilter{}}
return handleError(c, kio.Pipeline{Inputs: inputs, Filters: filters, Outputs: outputs}.Execute()) return runner.HandleError(c, kio.Pipeline{Inputs: inputs, Filters: filters, Outputs: outputs}.Execute())
} }

View File

@@ -6,6 +6,7 @@ package commands
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
) )
@@ -18,7 +19,7 @@ func GetMerge3Runner(name string) *Merge3Runner {
Example: commands.Merge3Examples, Example: commands.Merge3Examples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().StringVar(&r.ancestor, "ancestor", "", c.Flags().StringVar(&r.ancestor, "ancestor", "",
"Path to original package") "Path to original package")
c.Flags().StringVar(&r.fromDir, "from", "", c.Flags().StringVar(&r.fromDir, "from", "",

View File

@@ -9,6 +9,7 @@ import (
"strings" "strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/errors"
"sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil"
@@ -29,7 +30,7 @@ func GetRunFnRunner(name string) *RunFnRunner {
RunE: r.runE, RunE: r.runE,
PreRunE: r.preRunE, PreRunE: r.preRunE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().BoolVar(&r.IncludeSubpackages, "include-subpackages", true, c.Flags().BoolVar(&r.IncludeSubpackages, "include-subpackages", true,
"also print resources from subpackages.") "also print resources from subpackages.")
r.Command = c r.Command = c
@@ -103,7 +104,7 @@ type RunFnRunner struct {
} }
func (r *RunFnRunner) runE(c *cobra.Command, args []string) error { func (r *RunFnRunner) runE(c *cobra.Command, args []string) error {
return handleError(c, r.RunFns.Execute()) return runner.HandleError(c, r.RunFns.Execute())
} }
// getContainerFunctions parses the commandline flags and arguments into explicit // getContainerFunctions parses the commandline flags and arguments into explicit

View File

@@ -6,6 +6,7 @@ package commands
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/kio/kioutil" "sigs.k8s.io/kustomize/kyaml/kio/kioutil"
) )
@@ -21,7 +22,7 @@ func GetSinkRunner(name string) *SinkRunner {
RunE: r.runE, RunE: r.runE,
Args: cobra.MaximumNArgs(1), Args: cobra.MaximumNArgs(1),
} }
fixDocs(name, c) runner.FixDocs(name, c)
r.Command = c r.Command = c
return r return r
} }
@@ -49,5 +50,5 @@ func (r *SinkRunner) runE(c *cobra.Command, args []string) error {
err := kio.Pipeline{ err := kio.Pipeline{
Inputs: []kio.Reader{&kio.ByteReader{Reader: c.InOrStdin()}}, Inputs: []kio.Reader{&kio.ByteReader{Reader: c.InOrStdin()}},
Outputs: outputs}.Execute() Outputs: outputs}.Execute()
return handleError(c, err) return runner.HandleError(c, err)
} }

View File

@@ -8,6 +8,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/yaml" "sigs.k8s.io/kustomize/kyaml/yaml"
) )
@@ -22,7 +23,7 @@ func GetSourceRunner(name string) *SourceRunner {
Example: commands.SourceExamples, Example: commands.SourceExamples,
RunE: r.runE, RunE: r.runE,
} }
fixDocs(name, c) runner.FixDocs(name, c)
c.Flags().StringVar(&r.WrapKind, "wrap-kind", kio.ResourceListKind, c.Flags().StringVar(&r.WrapKind, "wrap-kind", kio.ResourceListKind,
"output using this format.") "output using this format.")
c.Flags().StringVar(&r.WrapApiVersion, "wrap-version", kio.ResourceListAPIVersion, c.Flags().StringVar(&r.WrapApiVersion, "wrap-version", kio.ResourceListAPIVersion,
@@ -78,5 +79,5 @@ func (r *SourceRunner) runE(c *cobra.Command, args []string) error {
} }
err := kio.Pipeline{Inputs: inputs, Outputs: outputs}.Execute() err := kio.Pipeline{Inputs: inputs, Outputs: outputs}.Execute()
return handleError(c, err) return runner.HandleError(c, err)
} }

View File

@@ -9,6 +9,7 @@ import (
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands" "sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
"sigs.k8s.io/kustomize/cmd/config/runner"
"sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/kio/filters"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@@ -26,7 +27,7 @@ func GetTreeRunner(name string) *TreeRunner {
RunE: r.runE, RunE: r.runE,
Args: cobra.MaximumNArgs(1), Args: cobra.MaximumNArgs(1),
} }
fixDocs(name, c) runner.FixDocs(name, c)
// TODO(pwittrock): Figure out if these are the right things to expose, and consider making it // TODO(pwittrock): Figure out if these are the right things to expose, and consider making it
// a list of options instead of individual flags // a list of options instead of individual flags
@@ -91,7 +92,7 @@ func (r *TreeRunner) runE(c *cobra.Command, args []string) error {
var fields []kio.TreeWriterField var fields []kio.TreeWriterField
for _, field := range r.fields { for _, field := range r.fields {
path, err := parseFieldPath(field) path, err := runner.ParseFieldPath(field)
if err != nil { if err != nil {
return err return err
} }
@@ -155,7 +156,7 @@ func (r *TreeRunner) runE(c *cobra.Command, args []string) error {
ExcludeNonLocalConfig: r.excludeNonLocal, ExcludeNonLocalConfig: r.excludeNonLocal,
}} }}
return handleError(c, kio.Pipeline{ return runner.HandleError(c, kio.Pipeline{
Inputs: []kio.Reader{input}, Inputs: []kio.Reader{input},
Filters: fltrs, Filters: fltrs,
Outputs: []kio.Writer{kio.TreeWriter{ Outputs: []kio.Writer{kio.TreeWriter{

View File

@@ -1,7 +1,7 @@
// Copyright 2019 The Kubernetes Authors. // Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
package commands package runner
import ( import (
"fmt" "fmt"
@@ -17,72 +17,72 @@ import (
"sigs.k8s.io/kustomize/kyaml/pathutil" "sigs.k8s.io/kustomize/kyaml/pathutil"
) )
// cmdRunner interface holds executeCmd definition which executes respective command's // CmdRunner interface holds ExecuteCmd definition which executes respective command's
// implementation on single package // implementation on single package
type cmdRunner interface { type CmdRunner interface {
executeCmd(w io.Writer, pkgPath string) error ExecuteCmd(w io.Writer, pkgPath string) error
} }
// executeCmdOnPkgs struct holds the parameters necessary to // ExecuteCmdOnPkgs struct holds the parameters necessary to
// execute the filter command on packages in rootPkgPath // execute the filter command on packages in rootPkgPath
type executeCmdOnPkgs struct { type ExecuteCmdOnPkgs struct {
rootPkgPath string RootPkgPath string
recurseSubPackages bool RecurseSubPackages bool
needOpenAPI bool NeedOpenAPI bool
cmdRunner cmdRunner CmdRunner CmdRunner
writer io.Writer Writer io.Writer
skipPkgPathPrint bool SkipPkgPathPrint bool
} }
// executeCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition // ExecuteCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition
// recursively on all the subpackages present in rootPkgPath if recurseSubPackages is true, else applies the command on rootPkgPath only // recursively on all the subpackages present in rootPkgPath if recurseSubPackages is true, else applies the command on rootPkgPath only
func (e executeCmdOnPkgs) execute() error { func (e ExecuteCmdOnPkgs) Execute() error {
pkgsPaths, err := pathutil.DirsWithFile(e.rootPkgPath, ext.KRMFileName(), e.recurseSubPackages) pkgsPaths, err := pathutil.DirsWithFile(e.RootPkgPath, ext.KRMFileName(), e.RecurseSubPackages)
if err != nil { if err != nil {
return err return err
} }
if len(pkgsPaths) == 0 { if len(pkgsPaths) == 0 {
// at this point, there are no openAPI files in the rootPkgPath // at this point, there are no openAPI files in the rootPkgPath
if e.needOpenAPI { if e.NeedOpenAPI {
// few executions need openAPI file to be present(ex: setters commands), if true throw an error // few executions need openAPI file to be present(ex: setters commands), if true throw an error
return errors.Errorf("unable to find %q in package %q", ext.KRMFileName(), e.rootPkgPath) return errors.Errorf("unable to find %q in package %q", ext.KRMFileName(), e.RootPkgPath)
} }
// add root path for commands which doesn't need openAPI(ex: annotate, fmt) // add root path for commands which doesn't need openAPI(ex: annotate, fmt)
pkgsPaths = []string{e.rootPkgPath} pkgsPaths = []string{e.RootPkgPath}
} }
// for commands which doesn't need openAPI file, make sure that the root package is // for commands which doesn't need openAPI file, make sure that the root package is
// included all the times // included all the times
if !e.needOpenAPI && !containsString(pkgsPaths, e.rootPkgPath) { if !e.NeedOpenAPI && !containsString(pkgsPaths, e.RootPkgPath) {
pkgsPaths = append([]string{e.rootPkgPath}, pkgsPaths...) pkgsPaths = append([]string{e.RootPkgPath}, pkgsPaths...)
} }
for i := range pkgsPaths { for i := range pkgsPaths {
pkgPath := pkgsPaths[i] pkgPath := pkgsPaths[i]
// Add schema present in openAPI file for current package // Add schema present in openAPI file for current package
if e.needOpenAPI { if e.NeedOpenAPI {
if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, ext.KRMFileName())); err != nil { if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, ext.KRMFileName())); err != nil {
return err return err
} }
} }
if !e.skipPkgPathPrint { if !e.SkipPkgPathPrint {
fmt.Fprintf(e.writer, "%s/\n", pkgPath) fmt.Fprintf(e.Writer, "%s/\n", pkgPath)
} }
err := e.cmdRunner.executeCmd(e.writer, pkgPath) err := e.CmdRunner.ExecuteCmd(e.Writer, pkgPath)
if err != nil { if err != nil {
return err return err
} }
if i != len(pkgsPaths)-1 { if i != len(pkgsPaths)-1 {
fmt.Fprint(e.writer, "\n") fmt.Fprint(e.Writer, "\n")
} }
// Delete schema present in openAPI file for current package // Delete schema present in openAPI file for current package
if e.needOpenAPI { if e.NeedOpenAPI {
if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, ext.KRMFileName())); err != nil { if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, ext.KRMFileName())); err != nil {
return err return err
} }
@@ -91,8 +91,8 @@ func (e executeCmdOnPkgs) execute() error {
return nil return nil
} }
// parseFieldPath parse a flag value into a field path // ParseFieldPath parse a flag value into a field path
func parseFieldPath(path string) ([]string, error) { func ParseFieldPath(path string) ([]string, error) {
// fixup '\.' so we don't split on it // fixup '\.' so we don't split on it
match := strings.ReplaceAll(path, "\\.", "$$$$") match := strings.ReplaceAll(path, "\\.", "$$$$")
parts := strings.Split(match, ".") parts := strings.Split(match, ".")
@@ -118,7 +118,7 @@ func parseFieldPath(path string) ([]string, error) {
return newParts, nil return newParts, nil
} }
func handleError(c *cobra.Command, err error) error { func HandleError(c *cobra.Command, err error) error {
if err == nil { if err == nil {
return nil return nil
} }
@@ -145,7 +145,7 @@ var StackOnError bool
const cmdName = "kustomize config" const cmdName = "kustomize config"
// FixDocs replaces instances of old with new in the docs for c // FixDocs replaces instances of old with new in the docs for c
func fixDocs(new string, c *cobra.Command) { func FixDocs(new string, c *cobra.Command) {
c.Use = strings.ReplaceAll(c.Use, cmdName, new) c.Use = strings.ReplaceAll(c.Use, cmdName, new)
c.Short = strings.ReplaceAll(c.Short, cmdName, new) c.Short = strings.ReplaceAll(c.Short, cmdName, new)
c.Long = strings.ReplaceAll(c.Long, cmdName, new) c.Long = strings.ReplaceAll(c.Long, cmdName, new)

View File

@@ -1,7 +1,7 @@
// Copyright 2019 The Kubernetes Authors. // Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
package commands package runner
import ( import (
"bytes" "bytes"
@@ -76,14 +76,14 @@ ${baseDir}/subpkg2/subpkg3/
t.Run(test.name, func(t *testing.T) { t.Run(test.name, func(t *testing.T) {
actual := &bytes.Buffer{} actual := &bytes.Buffer{}
r := &TestRunner{} r := &TestRunner{}
e := executeCmdOnPkgs{ e := ExecuteCmdOnPkgs{
needOpenAPI: test.needOpenAPI, NeedOpenAPI: test.needOpenAPI,
writer: actual, Writer: actual,
rootPkgPath: filepath.Join(dir, test.pkgPath), RootPkgPath: filepath.Join(dir, test.pkgPath),
recurseSubPackages: test.recurse, RecurseSubPackages: test.recurse,
cmdRunner: r, CmdRunner: r,
} }
err := e.execute() err := e.Execute()
if test.errMsg == "" { if test.errMsg == "" {
if !assert.NoError(t, err) { if !assert.NoError(t, err) {
t.FailNow() t.FailNow()
@@ -170,7 +170,7 @@ func createTestDirStructure(dir string) error {
type TestRunner struct{} type TestRunner struct{}
func (r *TestRunner) executeCmd(w io.Writer, pkgPath string) error { func (r *TestRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
children, err := ioutil.ReadDir(pkgPath) children, err := ioutil.ReadDir(pkgPath)
if err != nil { if err != nil {
return err return err

View File

@@ -8,7 +8,7 @@ import (
) )
// EnabkeAlphaCommmandsEnvName is the environment variable used to enable Alpha kustomize commands. // EnabkeAlphaCommmandsEnvName is the environment variable used to enable Alpha kustomize commands.
//If set to "true" alpha commands will be enabled. // If set to "true" alpha commands will be enabled.
const EnableAlphaCommmandsEnvName = "KUSTOMIZE_ENABLE_ALPHA_COMMANDS" const EnableAlphaCommmandsEnvName = "KUSTOMIZE_ENABLE_ALPHA_COMMANDS"
// GetAlphaEnabled returns true if alpha commands should be enabled. // GetAlphaEnabled returns true if alpha commands should be enabled.

View File

@@ -64,7 +64,7 @@ run(ctx.resource_list["items"])
Filters: []kio.Filter{fltr}, Filters: []kio.Filter{fltr},
Outputs: []kio.Writer{&kio.ByteWriter{Writer: output}}}.Execute() Outputs: []kio.Writer{&kio.ByteWriter{Writer: output}}}.Execute()
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
fmt.Println(output.String()) fmt.Println(output.String())
@@ -131,7 +131,7 @@ spec:
value: "hello world" value: "hello world"
`) `)
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
// fltr transforms the input using a starlark program // fltr transforms the input using a starlark program
@@ -156,7 +156,7 @@ run(ctx.resource_list["items"], ctx.resource_list["functionConfig"]["spec"]["val
Filters: []kio.Filter{fltr}, Filters: []kio.Filter{fltr},
Outputs: []kio.Writer{&kio.ByteWriter{Writer: output}}}.Execute() Outputs: []kio.Writer{&kio.ByteWriter{Writer: output}}}.Execute()
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
fmt.Println(output.String()) fmt.Println(output.String())
@@ -197,7 +197,7 @@ func ExampleFilter_Filter_file() {
// setup the configuration // setup the configuration
d, err := ioutil.TempDir("", "") d, err := ioutil.TempDir("", "")
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
defer os.RemoveAll(d) defer os.RemoveAll(d)
@@ -214,7 +214,7 @@ spec:
image: nginx:1.8.1 # {"$ref": "#/definitions/io.k8s.cli.substitutions.image-1"} image: nginx:1.8.1 # {"$ref": "#/definitions/io.k8s.cli.substitutions.image-1"}
`), 0600) `), 0600)
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
err = ioutil.WriteFile(filepath.Join(d, "deploy2.yaml"), []byte(` err = ioutil.WriteFile(filepath.Join(d, "deploy2.yaml"), []byte(`
@@ -230,7 +230,7 @@ spec:
image: nginx:1.7.9 # {"$ref": "#/definitions/io.k8s.cli.substitutions.image-2"} image: nginx:1.7.9 # {"$ref": "#/definitions/io.k8s.cli.substitutions.image-2"}
`), 0600) `), 0600)
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
err = ioutil.WriteFile(filepath.Join(d, "annotate.star"), []byte(` err = ioutil.WriteFile(filepath.Join(d, "annotate.star"), []byte(`
@@ -241,7 +241,7 @@ def run(items):
run(ctx.resource_list["items"]) run(ctx.resource_list["items"])
`), 0600) `), 0600)
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
fltr := &starlark.Filter{ fltr := &starlark.Filter{
@@ -261,7 +261,7 @@ run(ctx.resource_list["items"])
ClearAnnotations: []string{"config.kubernetes.io/path"}, ClearAnnotations: []string{"config.kubernetes.io/path"},
}}}.Execute() }}}.Execute()
if err != nil { if err != nil {
log.Fatal(err) log.Println(err)
} }
fmt.Println(output.String()) fmt.Println(output.String())

View File

@@ -117,7 +117,7 @@ func (r *ByteReader) Read() ([]*yaml.RNode, error) {
} }
// replace the ending \r\n (line ending used in windows) with \n and then separate by \n---\n // replace the ending \r\n (line ending used in windows) with \n and then separate by \n---\n
values := strings.Split(strings.Replace(input.String(), "\r\n", "\n", -1), "\n---\n") values := strings.Split(strings.ReplaceAll(input.String(), "\r\n", "\n"), "\n---\n")
index := 0 index := 0
for i := range values { for i := range values {

View File

@@ -170,9 +170,9 @@ func (f *FileSetter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) {
return nil, err return nil, err
} }
file := f.FilenamePattern file := f.FilenamePattern
file = strings.Replace(file, string(KindFmt), strings.ToLower(m.Kind), -1) file = strings.ReplaceAll(file, string(KindFmt), strings.ToLower(m.Kind))
file = strings.Replace(file, string(NameFmt), strings.ToLower(m.Name), -1) file = strings.ReplaceAll(file, string(NameFmt), strings.ToLower(m.Name))
file = strings.Replace(file, string(NamespaceFmt), strings.ToLower(m.Namespace), -1) file = strings.ReplaceAll(file, string(NamespaceFmt), strings.ToLower(m.Namespace))
if _, found := m.Annotations[kioutil.PathAnnotation]; !found || f.Override { if _, found := m.Annotations[kioutil.PathAnnotation]; !found || f.Override {
if _, err := input[i].Pipe(yaml.SetAnnotation(kioutil.PathAnnotation, file)); err != nil { if _, err := input[i].Pipe(yaml.SetAnnotation(kioutil.PathAnnotation, file)); err != nil {

View File

@@ -68,7 +68,7 @@ func (f GrepFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) {
if err != nil { if err != nil {
return err return err
} }
str = strings.TrimSpace(strings.Replace(str, `"`, "", -1)) str = strings.TrimSpace(strings.ReplaceAll(str, `"`, ""))
} else { } else {
// if not regexp, then it needs to parse into a quantity and comments will // if not regexp, then it needs to parse into a quantity and comments will
// break that // break that

View File

@@ -5,7 +5,6 @@ package kio_test
import ( import (
"bytes" "bytes"
"fmt"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@@ -69,7 +68,7 @@ spec:
t.FailNow() t.FailNow()
} }
if !assert.Equal(t, fmt.Sprintf(` if !assert.Equal(t, `
├── bar-package ├── bar-package
│   └── [f2.yaml] Deployment bar │   └── [f2.yaml] Deployment bar
└── foo-package └── foo-package
@@ -77,7 +76,7 @@ spec:
├── [f1.yaml] Service default/foo ├── [f1.yaml] Service default/foo
└── 3 └── 3
└── [f3.yaml] Deployment default/foo └── [f3.yaml] Deployment default/foo
`), out.String()) { `, out.String()) {
t.FailNow() t.FailNow()
} }
} }

View File

@@ -114,7 +114,7 @@ func (fs *fieldSetter) set(
} }
// be sure to set the tag to the matching type so the yaml doesn't incorrectly quote // be sure to set the tag to the matching type so the yaml doesn't incorrectly quote
//integers or booleans as strings // integers or booleans as strings
fType := fieldmeta.FieldValueType(f.Schema.Type[0]) fType := fieldmeta.FieldValueType(f.Schema.Type[0])
if err := fType.Validate(field.YNode().Value); err != nil { if err := fType.Validate(field.YNode().Value); err != nil {
return err return err

View File

@@ -281,13 +281,13 @@ packageMetadata:
func TestAdd_Filter2(t *testing.T) { func TestAdd_Filter2(t *testing.T) {
path := filepath.Join(os.TempDir(), "resourcefile") path := filepath.Join(os.TempDir(), "resourcefile")
//write initial resourcefile to temp path // write initial resourcefile to temp path
err := ioutil.WriteFile(path, []byte(resourcefile), 0666) err := ioutil.WriteFile(path, []byte(resourcefile), 0666)
if !assert.NoError(t, err) { if !assert.NoError(t, err) {
t.FailNow() t.FailNow()
} }
//add a setter definition // add a setter definition
sd := SetterDefinition{ sd := SetterDefinition{
Name: "image", Name: "image",
Value: "1", Value: "1",

View File

@@ -36,7 +36,7 @@ type substitutionSetterReference struct {
Marker string `yaml:"marker,omitempty" json:"marker,omitempty"` Marker string `yaml:"marker,omitempty" json:"marker,omitempty"`
} }
//K8sCliExtensionKey is the name of the OpenAPI field containing the setter extensions // K8sCliExtensionKey is the name of the OpenAPI field containing the setter extensions
const K8sCliExtensionKey = "x-k8s-cli" const K8sCliExtensionKey = "x-k8s-cli"
// GetExtFromSchema returns the cliExtension openAPI extension if it is present in schema // GetExtFromSchema returns the cliExtension openAPI extension if it is present in schema

View File

@@ -15,7 +15,7 @@ var fieldSortOrder = []string{
// secret and configmap // secret and configmap
"stringData", "data", "binaryData", "stringData", "data", "binaryData",
//cronjobspec, daemonsetspec, deploymentspec, statefulsetspec, // cronjobspec, daemonsetspec, deploymentspec, statefulsetspec,
// jobspec fields // jobspec fields
"parallelism", "completions", "activeDeadlineSeconds", "backoffLimit", "parallelism", "completions", "activeDeadlineSeconds", "backoffLimit",
"replicas", "selector", "manualSelector", "template", "replicas", "selector", "manualSelector", "template",