From 34c87421b82b967a8ae85261ca9a3e9fe7b156da Mon Sep 17 00:00:00 2001 From: Cameron Moore Date: Thu, 22 Dec 2016 22:05:59 -0600 Subject: [PATCH] tpl: Update getenv to accept interface{} params Updates #2822 --- tpl/template_funcs.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go index 7516b46ad..db3ba37bc 100644 --- a/tpl/template_funcs.go +++ b/tpl/template_funcs.go @@ -2075,6 +2075,17 @@ func relURL(a interface{}) (template.HTML, error) { return template.HTML(helpers.CurrentPathSpec().RelURL(s, false)), nil } +// getenv retrieves the value of the environment variable named by the key. +// It returns the value, which will be empty if the variable is not present. +func getenv(key interface{}) (string, error) { + skey, err := cast.ToStringE(key) + if err != nil { + return "", nil + } + + return os.Getenv(skey), nil +} + func initFuncMap() { funcMap = template.FuncMap{ "absURL": absURL, @@ -2106,7 +2117,7 @@ func initFuncMap() { "ge": ge, "getCSV": getCSV, "getJSON": getJSON, - "getenv": func(varName string) string { return os.Getenv(varName) }, + "getenv": getenv, "gt": gt, "hasPrefix": hasPrefix, "highlight": highlight,