From 1773d71d5b40f5a6a14edca417d2818607a499f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 20 Dec 2019 20:46:17 +0100 Subject: tpl: Add a warnf template func Fixes #6628 --- tpl/fmt/fmt.go | 13 ++++++++++++- tpl/fmt/init.go | 6 ++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'tpl/fmt') diff --git a/tpl/fmt/fmt.go b/tpl/fmt/fmt.go index 8b24648cb..7e0258650 100644 --- a/tpl/fmt/fmt.go +++ b/tpl/fmt/fmt.go @@ -23,12 +23,16 @@ import ( // New returns a new instance of the fmt-namespaced template functions. func New(d *deps.Deps) *Namespace { - return &Namespace{helpers.NewDistinctLogger(d.Log.ERROR)} + return &Namespace{ + errorLogger: helpers.NewDistinctLogger(d.Log.ERROR), + warnLogger: helpers.NewDistinctLogger(d.Log.WARN), + } } // Namespace provides template functions for the "fmt" namespace. type Namespace struct { errorLogger *helpers.DistinctLogger + warnLogger *helpers.DistinctLogger } // Print returns string representation of the passed arguments. @@ -53,3 +57,10 @@ func (ns *Namespace) Errorf(format string, a ...interface{}) string { ns.errorLogger.Printf(format, a...) return _fmt.Sprintf(format, a...) } + +// Warnf formats according to a format specifier and logs a WARNING. +// It returns an empty string. +func (ns *Namespace) Warnf(format string, a ...interface{}) string { + ns.warnLogger.Printf(format, a...) + return "" +} diff --git a/tpl/fmt/init.go b/tpl/fmt/init.go index 117055801..14568b45a 100644 --- a/tpl/fmt/init.go +++ b/tpl/fmt/init.go @@ -57,6 +57,12 @@ func init() { }, ) + ns.AddMethodMapping(ctx.Warnf, + []string{"warnf"}, + [][2]string{ + {`{{ warnf "%s." "warning" }}`, ``}, + }, + ) return ns } -- cgit v1.2.3