diff --git a/cmd/tk/jsonnet.go b/cmd/tk/jsonnet.go index e4d2d4fbf..779a00d66 100644 --- a/cmd/tk/jsonnet.go +++ b/cmd/tk/jsonnet.go @@ -2,7 +2,6 @@ package main import ( "encoding/json" - "fmt" "github.com/go-clix/cli" @@ -25,7 +24,7 @@ func evalCmd() *cli.Command { JsonnetOpts: getJsonnetOpts(), } if *evalPattern != "" { - jsonnetOpts.EvalScript = fmt.Sprintf(tanka.PatternEvalScript, *evalPattern) + jsonnetOpts.EvalScript = tanka.PatternEvalScript(*evalPattern) } raw, err := tanka.Eval(args[0], jsonnetOpts) diff --git a/pkg/tanka/evaluators.go b/pkg/tanka/evaluators.go index 8ceaa9fbe..64c761cb6 100644 --- a/pkg/tanka/evaluators.go +++ b/pkg/tanka/evaluators.go @@ -51,7 +51,12 @@ function(%s) return raw, nil } -const PatternEvalScript = "main.%s" +func PatternEvalScript(expr string) string { + if strings.HasPrefix(expr, "[") { + return fmt.Sprintf("main%s", expr) + } + return fmt.Sprintf("main.%s", expr) +} // MetadataEvalScript finds the Environment object (without its .data object) const MetadataEvalScript = `