Add mustToTOML template functions and let toTOML return empty string on error

Signed-off-by: tison <wander4096@gmail.com>
pull/31431/head
tison 2 months ago
parent 1da2b0a6d4
commit 8b7de70d1e
No known key found for this signature in database
GPG Key ID: CD8564CB6A21E526

@ -50,6 +50,7 @@ func funcMap() template.FuncMap {
// Add some extra functionality
extra := template.FuncMap{
"toToml": toTOML,
"mustToToml": mustToTOML,
"fromToml": fromTOML,
"toYaml": toYAML,
"mustToYaml": mustToYAML,
@ -155,9 +156,22 @@ func fromYAMLArray(str string) []interface{} {
func toTOML(v interface{}) string {
b := bytes.NewBuffer(nil)
e := toml.NewEncoder(b)
err := e.Encode(v)
if err != nil {
return err.Error()
if err := e.Encode(v); err != nil {
return ""
}
return b.String()
}
// mustToTOML takes an interface, marshals it to toml, and returns a string.
// It will panic if there is an error.
//
// This is designed to be called from a template when need to ensure that the
// output TOML is valid.
func mustToTOML(v interface{}) string {
b := bytes.NewBuffer(nil)
e := toml.NewEncoder(b)
if err := e.Encode(v); err != nil {
panic(err)
}
return b.String()
}

Loading…
Cancel
Save