driskell/log-courier — pull request #71 by doktor88 (2014-11-17 17:04:30+00:00)
Title: Expanding environment variables in the config file. 

The idea is to have common configuration file, which can be deployed on windows or linux. I.e.
{
"network": {
"servers": [ "host:port" ],
"ssl ca": "${MY_HOME}/log-courier.crt",
"ssl certificate": "${MY_HOME}/log-courier.crt",
"ssl key": "${MY_HOME}/log-courier.key"
},
"files": [
{
"paths": [
"${MY_LOG_DIR}/app1/*.log",
"${MY_LOG_DIR}/app2/*.log"],
"fields": { "type": "lumberjack" }
}
]
}

Potentially, properties could be environment variables, os.ExpandEnv method solves the issue smoothly.

From go lang documentation:
ExpandEnv replaces ${var} or $var in the string according to the values of the current environment variables. References to undefined variables are replaced by the empty string.