在revel app.conf中读取环境变量

时间:2014-05-17 18:25:43

标签: go config revel

Revel使用app.conf存储配置。我希望我的配置使用os.Getenv(key)

从环境变量中获取值

我该怎么办?我应该使用revel.Config进行更改吗?如果是的话我在哪里放置它?

还是有另一种方式吗?

我主要用它来存储数据库信息(我不想在配置文件中输入我的凭证)

谢谢

1 个答案:

答案 0 :(得分:3)

Revel使用revel/config来管理app.conf

从环境变量读取的位置revel / config foes是type.go (c *Config) String()方法。

// $ environment variables
computedVal, _ = c.computeVar(&value, envVarRegExp, 2, 1, func(varName *string) string {
return os.Getenv(*varName)
})

这意味着您可以根据环境变量的名称添加配置文件值,这将允许您使用所述环境变量来修改配置。

请参阅revel/config REAMD.md file中的示例。

[DEFAULT]
host: www.example.com
protocol: http://
base-url: %(protocol)s%(host)s    <====

OP pveyes points outthis comment in type.go

// substitute by new value and take off leading '%(' and trailing ')s'
// %(foo)s => headsz=2, tailsz=2
// ${foo} => headsz=2, tailsz=1

所以:

  
      
  • 使用环境变量时使用${ENV_VARS}
  •   
  • 展开变量使用%(UNF_VARS)s
  •