Skip to content

Commit 4142d40

Browse files
committed
cli-plugins/hooks: detect if templating is needed
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent cd05360 commit 4142d40

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

cli-plugins/hooks/template.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,22 @@ import (
1010
)
1111

1212
func ParseTemplate(hookTemplate string, cmd *cobra.Command) ([]string, error) {
13-
tmpl := template.New("").Funcs(commandFunctions)
14-
tmpl, err := tmpl.Parse(hookTemplate)
15-
if err != nil {
16-
return nil, err
13+
out := hookTemplate
14+
if strings.Contains(hookTemplate, "{{") {
15+
// Message may be a template.
16+
tmpl := template.New("").Funcs(commandFunctions)
17+
tmpl, err := tmpl.Parse(hookTemplate)
18+
if err != nil {
19+
return nil, err
20+
}
21+
var b bytes.Buffer
22+
err = tmpl.Execute(&b, cmd)
23+
if err != nil {
24+
return nil, err
25+
}
26+
out = b.String()
1727
}
18-
b := bytes.Buffer{}
19-
err = tmpl.Execute(&b, cmd)
20-
if err != nil {
21-
return nil, err
22-
}
23-
return strings.Split(b.String(), "\n"), nil
28+
return strings.Split(out, "\n"), nil
2429
}
2530

2631
var ErrHookTemplateParse = errors.New("failed to parse hook template")

0 commit comments

Comments
 (0)