mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-12 08:23:58 +02:00
24 lines
416 B
Go
24 lines
416 B
Go
|
package reader
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"regexp"
|
||
|
)
|
||
|
|
||
|
func ReplaceEnvVars(raw []byte) ([]byte, error) {
|
||
|
re := regexp.MustCompile(`\$\{([A-Za-z0-9_]+)\}`)
|
||
|
if re.Match(raw) {
|
||
|
dataS := string(raw)
|
||
|
res := re.ReplaceAllStringFunc(dataS, replaceEnvVars)
|
||
|
return []byte(res), nil
|
||
|
} else {
|
||
|
return raw, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func replaceEnvVars(element string) string {
|
||
|
v := element[2 : len(element)-1]
|
||
|
el := os.Getenv(v)
|
||
|
return el
|
||
|
}
|