コード例 #1
0
ファイル: context.go プロジェクト: ChristianArnault/hwaf
func (ctx *Context) load_env_from_cfg(cfg *gocfg.Config) error {

	if !cfg.HasSection("hwaf-env") {
		return nil
	}

	section := "hwaf-env"
	options, err := cfg.Options(section)
	if err != nil {
		return err
	}
	for _, k := range options {
		v, err := cfg.String(section, k)
		if err != nil {
			continue
		}
		v = os.ExpandEnv(v)

		vv := os.Getenv(k)
		if vv != "" && vv != v {
			// we don't override parent environment!
			// would be too confusing
			ctx.Warn(
				"configuration tries to override env.var [%s] with [%s] (current=%s)\n",
				k, v, vv,
			)
		}
		err = os.Setenv(k, v)
		if err != nil {
			ctx.Warn("problem setting env. var [%s]: %v\n", k, err)
		}
	}
	return nil
}