func New() (*Config, error) { c := Config{} if err := env.Process(&c); err != nil { return nil, err } arg.MustParse(&c) return &c, nil }
func newConfig() (*config, error) { cfg := &config{} if err := env.Process(cfg); err != nil { return cfg, err } return cfg, nil }
// HAL_NAME=hal // HAL_PORT= // HAL_ADAPTER= func main() { // os.Setenv("IS_ENABLED", "asdf") c := &Config{} if err := env.Process(c); err != nil { fmt.Println("error:", err) return // panic(err) } fmt.Printf("name: %s, port: %d, adapter: %s, enabled: %v\n", c.Name, c.Port, c.Adapter, c.Enabled) }
// HAL_NAME=hal // HAL_PORT= // HAL_ADAPTER= func main() { os.Setenv("NAME", "foo") os.Setenv("PORT", "9001") os.Setenv("ADAPTER", "shell") // os.Setenv("IS_ENABLED", "asdf") c := &Config{} if err := env.Process(c); err != nil { panic(err) } fmt.Printf("name: %s, port: %d, adapter: %s, enabled: %v\n", c.Name, c.Port, c.Adapter, c.Enabled) }
func newConfig() (*config, error) { cfg := &config{} if err := env.Process(cfg); err != nil { return cfg, err } if cfg.TestDBName == "" { cfg.TestDBName = cfg.DBName + "_test" } if cfg.TestDBUser == "" { cfg.TestDBUser = cfg.DBUser } if cfg.TestDBPassword == "" { cfg.TestDBPassword = cfg.DBPassword } if cfg.TestDBHost == "" { cfg.TestDBHost = cfg.DBHost } if cfg.TestDBName == cfg.DBName { return cfg, errors.New("test DB name same as DB name") } if cfg.BaseDir == "" { cfg.BaseDir = getDefaultBaseDir() } if cfg.PublicDir == "" { cfg.PublicDir = path.Join(cfg.BaseDir, "public") } if cfg.UploadsDir == "" { cfg.UploadsDir = path.Join(cfg.PublicDir, "uploads") } if cfg.ThumbnailsDir == "" { cfg.ThumbnailsDir = path.Join(cfg.UploadsDir, "thumbnails") } if cfg.TemplatesDir == "" { cfg.TemplatesDir = path.Join(cfg.BaseDir, "templates") } return cfg, nil }