From 065a3e1c6606861f2e8bfc2e5a931cf75d796c1a Mon Sep 17 00:00:00 2001 From: Duologic Date: Fri, 20 Nov 2020 09:58:59 +0100 Subject: [PATCH] fix: return env names with error --- pkg/tanka/errors.go | 10 +++++++--- pkg/tanka/parse.go | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/tanka/errors.go b/pkg/tanka/errors.go index b874fc90b..546285b09 100644 --- a/pkg/tanka/errors.go +++ b/pkg/tanka/errors.go @@ -1,6 +1,9 @@ package tanka -import "fmt" +import ( + "fmt" + "strings" +) // ErrNoEnv means that the given jsonnet has no Environment object // This must not be fatal, some operations work without @@ -14,9 +17,10 @@ func (e ErrNoEnv) Error() string { // ErrMultipleEnvs means that the given jsonnet has multiple Environment objects type ErrMultipleEnvs struct { - path string + path string + names []string } func (e ErrMultipleEnvs) Error() string { - return fmt.Sprintf("found multiple Environments in '%s'", e.path) + return fmt.Sprintf("found multiple Environments (%s) in '%s'", strings.Join(e.names, ", "), e.path) } diff --git a/pkg/tanka/parse.go b/pkg/tanka/parse.go index 7c059c821..663a9bd53 100644 --- a/pkg/tanka/parse.go +++ b/pkg/tanka/parse.go @@ -198,7 +198,11 @@ func parseEnv(path string, opts jsonnet.Opts, evalFn evaluateFunc) (interface{}, var env *v1alpha1.Environment if len(extractedEnvs) > 1 { - return data, nil, ErrMultipleEnvs{path} + names := make([]string, 0) + for _, exEnv := range extractedEnvs { + names = append(names, exEnv.Metadata().Name()) + } + return data, nil, ErrMultipleEnvs{path, names} } else if len(extractedEnvs) == 1 { marshalled, err := json.Marshal(extractedEnvs[0]) if err != nil {