Merge pull request #3055 from phanimarupaka/CleanupCfgCommandOutput

Cleanup Cfg/Grep Command Output
This commit is contained in:
Jeff Regan
2020-10-02 14:22:00 -07:00
committed by GitHub
8 changed files with 89 additions and 25 deletions

View File

@@ -501,7 +501,10 @@ func TestAnnotateSubPackages(t *testing.T) {
name: "annotate-recurse-subpackages", name: "annotate-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"--kv", "foo=bar", "-R"}, args: []string{"--kv", "foo=bar", "-R"},
expected: `${baseDir}/mysql/ expected: `${baseDir}/
added annotations in the package
${baseDir}/mysql/
added annotations in the package added annotations in the package
${baseDir}/mysql/storage/ ${baseDir}/mysql/storage/

View File

@@ -4,9 +4,11 @@
package commands package commands
import ( import (
"bytes"
"fmt" "fmt"
"io" "io"
"os" "os"
"strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
@@ -96,8 +98,10 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
return handleError(c, kio.Pipeline{Inputs: []kio.Reader{input}, Filters: r.catFilters(), Outputs: outputs}.Execute()) return handleError(c, kio.Pipeline{Inputs: []kio.Reader{input}, Filters: r.catFilters(), Outputs: outputs}.Execute())
} }
out := &bytes.Buffer{}
e := executeCmdOnPkgs{ e := executeCmdOnPkgs{
writer: writer, writer: out,
needOpenAPI: false, needOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, recurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, cmdRunner: r,
@@ -105,12 +109,21 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
skipPkgPathPrint: true, skipPkgPathPrint: true,
} }
return e.execute() err := e.execute()
if err != nil {
return err
}
res := strings.TrimSuffix(out.String(), "---")
fmt.Fprintf(writer, "%s", res)
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()}
outputs, err := r.out(w) out := &bytes.Buffer{}
outputs, err := r.out(out)
if err != nil { if err != nil {
return err return err
} }
@@ -129,7 +142,10 @@ func (r *CatRunner) executeCmd(w io.Writer, pkgPath string) error {
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
} }
} }
fmt.Fprintf(w, "---") fmt.Fprint(w, out.String())
if out.String() != "" {
fmt.Fprint(w, "---")
}
return nil return nil
} }

View File

@@ -115,7 +115,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
---`, b.String()) { `, b.String()) {
return return
} }
} }
@@ -225,7 +225,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
---`, b.String()) { `, b.String()) {
return return
} }
} }
@@ -307,7 +307,7 @@ metadata:
image: gcr.io/example/reconciler:v1 image: gcr.io/example/reconciler:v1
spec: spec:
replicas: 3 replicas: 3
---`, b.String()) { `, b.String()) {
return return
} }
} }
@@ -421,7 +421,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
---`, string(actual)) { `, string(actual)) {
return return
} }
} }
@@ -536,7 +536,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
---`, string(actual)) { `, string(actual)) {
return return
} }
} }
@@ -552,7 +552,8 @@ func TestCatSubPackages(t *testing.T) {
{ {
name: "cat-recurse-subpackages", name: "cat-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
expected: `# Copyright 2019 The Kubernetes Authors. expected: `
# Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1 apiVersion: apps/v1
@@ -583,7 +584,7 @@ spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7 image: storage:1.7.7
---`, `,
}, },
{ {
name: "cat-top-level-pkg-no-recurse-subpackages", name: "cat-top-level-pkg-no-recurse-subpackages",
@@ -605,7 +606,7 @@ spec:
containers: containers:
- name: mysql - name: mysql
image: mysql:1.7.9 image: mysql:1.7.9
---`, `,
}, },
{ {
name: "cat-nested-pkg-no-recurse-subpackages", name: "cat-nested-pkg-no-recurse-subpackages",
@@ -627,7 +628,7 @@ spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7 image: storage:1.7.7
---`, `,
}, },
} }
for i := range tests { for i := range tests {

View File

@@ -86,7 +86,9 @@ func TestCountSubPackages(t *testing.T) {
{ {
name: "count-recurse-subpackages", name: "count-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
expected: `${baseDir}/mysql/ expected: `${baseDir}/
${baseDir}/mysql/
Deployment: 1 Deployment: 1
${baseDir}/mysql/storage/ ${baseDir}/mysql/storage/

View File

@@ -179,7 +179,10 @@ func TestFmtSubPackages(t *testing.T) {
name: "fmt-recurse-subpackages", name: "fmt-recurse-subpackages",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
args: []string{"-R"}, args: []string{"-R"},
expected: `${baseDir}/mysql/ expected: `${baseDir}/
formatted resource files in the package
${baseDir}/mysql/
formatted resource files in the package formatted resource files in the package
${baseDir}/mysql/nosetters/ ${baseDir}/mysql/nosetters/

View File

@@ -4,6 +4,7 @@
package commands package commands
import ( import (
"bytes"
"fmt" "fmt"
"io" "io"
"strings" "strings"
@@ -114,8 +115,10 @@ func (r *GrepRunner) runE(c *cobra.Command, args []string) error {
}.Execute()) }.Execute())
} }
out := bytes.Buffer{}
e := executeCmdOnPkgs{ e := executeCmdOnPkgs{
writer: c.OutOrStdout(), writer: &out,
needOpenAPI: false, needOpenAPI: false,
recurseSubPackages: r.RecurseSubPackages, recurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, cmdRunner: r,
@@ -123,18 +126,26 @@ func (r *GrepRunner) runE(c *cobra.Command, args []string) error {
skipPkgPathPrint: true, skipPkgPathPrint: true,
} }
return e.execute() err := e.execute()
if err != nil {
return err
}
res := strings.TrimSuffix(out.String(), "---")
fmt.Fprintf(c.OutOrStdout(), "%s", res)
return nil
} }
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{}
err := kio.Pipeline{ err := 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{
Writer: w, Writer: out,
KeepReaderAnnotations: r.KeepAnnotations, KeepReaderAnnotations: r.KeepAnnotations,
}}, }},
}.Execute() }.Execute()
@@ -148,6 +159,9 @@ func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error {
fmt.Fprintf(w, "%s\n", err.Error()) fmt.Fprintf(w, "%s\n", err.Error())
} }
} }
fmt.Fprintf(w, "---") fmt.Fprint(w, out.String())
if out.String() != "" {
fmt.Fprint(w, "---")
}
return nil return nil
} }

View File

@@ -283,7 +283,8 @@ func TestGrepSubPackages(t *testing.T) {
name: "grep-recurse-subpackages", name: "grep-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"kind=Deployment"}, args: []string{"kind=Deployment"},
expected: `# Copyright 2019 The Kubernetes Authors. expected: `
# Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1 apiVersion: apps/v1
@@ -320,7 +321,7 @@ spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7 image: storage:1.7.7
---`, `,
}, },
{ {
name: "grep-top-level-pkg-no-recurse-subpackages", name: "grep-top-level-pkg-no-recurse-subpackages",
@@ -345,7 +346,7 @@ spec:
containers: containers:
- name: mysql - name: mysql
image: mysql:1.7.9 image: mysql:1.7.9
---`, `,
}, },
{ {
name: "grep-nested-pkg-no-recurse-subpackages", name: "grep-nested-pkg-no-recurse-subpackages",
@@ -370,7 +371,15 @@ spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7 image: storage:1.7.7
---`, `,
},
{
name: "grep-recurse-subpackages-no-result",
dataset: "dataset-without-setters",
args: []string{"kind=ConfigMap"},
expected: `
`,
}, },
} }
for i := range tests { for i := range tests {

View File

@@ -53,6 +53,12 @@ func (e executeCmdOnPkgs) execute() error {
pkgsPaths = []string{e.rootPkgPath} pkgsPaths = []string{e.rootPkgPath}
} }
// for commands which doesn't need openAPI file, make sure that the root package is
// included all the times
if !e.needOpenAPI && !containsString(pkgsPaths, e.rootPkgPath) {
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
@@ -145,3 +151,13 @@ func fixDocs(new string, c *cobra.Command) {
c.Long = strings.ReplaceAll(c.Long, cmdName, new) c.Long = strings.ReplaceAll(c.Long, cmdName, new)
c.Example = strings.ReplaceAll(c.Example, cmdName, new) c.Example = strings.ReplaceAll(c.Example, cmdName, new)
} }
// containsString returns true if slice contains s
func containsString(slice []string, s string) bool {
for _, item := range slice {
if item == s {
return true
}
}
return false
}