diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index 46e75a1f3..0dea01dd6 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -33,6 +33,14 @@ import ( chartutil "helm.sh/helm/v4/pkg/chart/v2/util" ) +// taken from https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/text/template/exec.go;l=141 +// > "template: %s: executing %q at <%s>: %s" +var execErrFmt = regexp.MustCompile(`^template: (?P(?U).+): executing (?P(?U).+) at (?P(?U).+): (?P(?U).+)(?P( template:.*)?)$`) + +// taken from https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/text/template/exec.go;l=138 +// > "template: %s: %s" +var execErrFmtWithoutTemplate = regexp.MustCompile(`^template: (?P(?U).+): (?P.*)(?P( template:.*)?)$`) + // Engine is an implementation of the Helm rendering implementation for templates. type Engine struct { // If strict is enabled, template rendering will fail if a template references @@ -344,20 +352,6 @@ func cleanupExecError(filename string, err error) error { return err } - // taken from https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/text/template/exec.go;l=138 - // > "template: %s: %s" - // taken from https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/text/template/exec.go;l=141 - // > "template: %s: executing %q at <%s>: %s" - - execErrFmt, compileErr := regexp.Compile(`^template: (?P(?U).+): executing (?P(?U).+) at (?P(?U).+): (?P(?U).+)(?P( template:.*)?)$`) - if compileErr != nil { - return err - } - execErrFmtWithoutTemplate, compileErr := regexp.Compile(`^template: (?P(?U).+): (?P.*)(?P( template:.*)?)$`) - if compileErr != nil { - return err - } - tokens := strings.SplitN(err.Error(), ": ", 3) if len(tokens) != 3 { // This might happen if a non-templating error occurs