in alertmanager/client/template_client.go [153:175]
func (t *templateClient) EditTemplate(filename, tmplName, tmplText string) error {
t.fileLocks.Lock(filename)
defer t.fileLocks.Unlock(filename)
tmplFile, err := t.readTmplFile(filename)
if err != nil {
return err
}
tmplMap := getTemplatesByName(tmplFile)
if tmplMap[tmplName] == nil {
return fmt.Errorf("template %s does not exist", tmplName)
}
parseTmpl := &template.Template{}
newTmpl, err := parseTmpl.Parse(tmplText)
if err != nil {
return fmt.Errorf("error adding template: %v", err)
}
tmplMap[tmplName] = newTmpl
return t.writeTmplFile(filename, writeTmplMapText(tmplMap))
}