VictoriaMetrics/lib/envtemplate/envtemplate.go

26 lines
523 B
Go
Raw Normal View History

package envtemplate
import (
"bytes"
"io"
"os"
"github.com/valyala/fasttemplate"
)
// Replace replaces `%{ENV_VAR}` placeholders in b with the corresponding ENV_VAR values.
func Replace(b []byte) []byte {
if !bytes.Contains(b, []byte("%{")) {
// Fast path - nothing to replace.
return b
}
s := fasttemplate.ExecuteFuncString(string(b), "%{", "}", func(w io.Writer, tag string) (int, error) {
v := os.Getenv(tag)
if v == "" {
v = "%{" + tag + "}"
}
return w.Write([]byte(v))
})
return []byte(s)
}