Support escaping dollar signs in the YAML config file; closes pterodactyl/panel#3692
This commit is contained in:
parent
02734292a0
commit
981756b456
|
@ -457,9 +457,22 @@ func FromFile(path string) error {
|
|||
return err
|
||||
}
|
||||
// Replace environment variables within the configuration file with their
|
||||
// values from the host system.
|
||||
b = []byte(os.ExpandEnv(string(b)))
|
||||
if err := yaml.Unmarshal(b, c); err != nil {
|
||||
// values from the host system. This function works almost identically to
|
||||
// the default os.ExpandEnv function, except it supports escaping dollar
|
||||
// signs in the text if you pass "$$" through.
|
||||
//
|
||||
// "some$$foo" -> "some$foo"
|
||||
// "some$foo" -> "some" (or "someVALUE_OF_FOO" if FOO is defined in env)
|
||||
//
|
||||
// @see https://github.com/pterodactyl/panel/issues/3692
|
||||
exp := os.Expand(string(b), func(s string) string {
|
||||
if s == "$" {
|
||||
return s
|
||||
}
|
||||
return os.Getenv(s)
|
||||
})
|
||||
|
||||
if err := yaml.Unmarshal([]byte(exp), c); err != nil {
|
||||
return err
|
||||
}
|
||||
// Store this configuration in the global state.
|
||||
|
|
Loading…
Reference in New Issue
Block a user