From 84d93760678118d64cb6d3f4c3625c09da892524 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Fri, 22 Jun 2018 22:21:12 -0400 Subject: [PATCH] Check the error from CodeGenerator Execute --- cmd/kubebuilder/create/config/config.go | 10 ++++++++-- cmd/kubebuilder/create/config/gen.go | 17 +++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/cmd/kubebuilder/create/config/config.go b/cmd/kubebuilder/create/config/config.go index ecec4456dd..8f2c080412 100644 --- a/cmd/kubebuilder/create/config/config.go +++ b/cmd/kubebuilder/create/config/config.go @@ -19,6 +19,7 @@ import ( "log" "path/filepath" + "github.com/kubernetes-sigs/kubebuilder/cmd/kubebuilder/util" "github.com/spf13/cobra" ) @@ -57,8 +58,13 @@ kubebuilder create config --crds --output myextensionname.yaml fmt.Printf("Must either specify the name of the extension with --name or set --crds.\n") return } - CodeGenerator{SkipMapValidation: skipMapValidation}.Execute() - log.Printf("Config written to %s", output) + generated, err := CodeGenerator{SkipMapValidation: skipMapValidation}.Execute() + if err != nil { + fmt.Printf("%v\n", err) + } else { + util.WriteString(output, generated) + log.Printf("Config written to %s", output) + } }, } diff --git a/cmd/kubebuilder/create/config/gen.go b/cmd/kubebuilder/create/config/gen.go index 018ede75ac..928b1fe331 100644 --- a/cmd/kubebuilder/create/config/gen.go +++ b/cmd/kubebuilder/create/config/gen.go @@ -24,7 +24,6 @@ import ( "github.com/ghodss/yaml" "github.com/golang/glog" "github.com/kubernetes-sigs/kubebuilder/cmd/internal/codegen/parse" - "github.com/kubernetes-sigs/kubebuilder/cmd/kubebuilder/util" "github.com/kubernetes-sigs/kubebuilder/cmd/kubebuilder/version" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -36,7 +35,7 @@ import ( ) // CodeGenerator generates code for Kubernetes resources and controllers -type CodeGenerator struct{ +type CodeGenerator struct { SkipMapValidation bool } @@ -53,28 +52,27 @@ func addLabels(m map[string]string) map[string]string { } // Execute parses packages and executes the code generators against the resource and controller packages -func (g CodeGenerator) Execute() error { +func (g CodeGenerator) Execute() (string, error) { arguments := args.Default() b, err := arguments.NewBuilder() if err != nil { - return fmt.Errorf("Failed making a parser: %v", err) + return "", fmt.Errorf("Failed making a parser: %v", err) } for _, d := range []string{"./pkg/apis", "./pkg/controller", "./pkg/inject"} { if err := b.AddDirRecursive(d); err != nil { - return fmt.Errorf("Failed making a parser: %v", err) + return "", fmt.Errorf("Failed making a parser: %v", err) } } c, err := parse.NewContext(b) if err != nil { - return fmt.Errorf("Failed making a context: %v", err) + return "", fmt.Errorf("Failed making a context: %v", err) } arguments.CustomArgs = &parse.ParseOptions{SkipMapValidation: g.SkipMapValidation} p := parse.NewAPIs(c, arguments) if crds { - util.WriteString(output, strings.Join(getCrds(p), "---\n")) - return nil + return strings.Join(getCrds(p), "---\n"), nil } result := append([]string{}, @@ -90,8 +88,7 @@ func (g CodeGenerator) Execute() error { result = append(result, getStatefuleSet(p)) } - util.WriteString(output, strings.Join(result, "---\n")) - return nil + return strings.Join(result, "---\n"), nil } func getClusterRole(p *parse.APIs) string {