diff --git a/docs/docs/segment-environment.md b/docs/docs/segment-environment.md index 1012c851..f35bc87e 100644 --- a/docs/docs/segment-environment.md +++ b/docs/docs/segment-environment.md @@ -50,7 +50,12 @@ The segment will show when the value of the environment variable isn't empty. ``` - var_name: `string` - the name of the environment variable +- template: `string` - A go [text/template][go-text-template] template extended with [sprig][sprig] utilizing the +properties below. Defaults to the value of the environment variable. ## Template Properties - `.Value`: `string` - the value of the environment variable + +[go-text-template]: https://golang.org/pkg/text/template/ +[sprig]: https://masterminds.github.io/sprig/ diff --git a/src/segment_envar.go b/src/segment_envar.go index b5bc65ae..fbed8d22 100644 --- a/src/segment_envar.go +++ b/src/segment_envar.go @@ -18,7 +18,20 @@ func (e *envvar) enabled() bool { } func (e *envvar) string() string { - return e.Value + segmentTemplate := e.props.getString(SegmentTemplate, "") + if len(segmentTemplate) == 0 { + return e.Value + } + template := &textTemplate{ + Template: segmentTemplate, + Context: e, + Env: e.env, + } + text, err := template.render() + if err != nil { + return err.Error() + } + return text } func (e *envvar) init(props *properties, env environmentInfo) {