package config import ( "os" "strconv" "time" ) func (c *Config) ReadEnv() (err error) { // General Configuration stringVar(&c.BaseUrl, "BASE_URL") stringVar(&c.SavePath, "SAVE_PATH") intVar(&c.Port, "PORT") return } func stringVar(x *string, key string) { if v := os.Getenv(key); v != "" { *x = v } } func float64Var(x *float64, key string) (err error) { if v := os.Getenv(key); v != "" { *x, err = strconv.ParseFloat(v, 64) } return } func intVar(x *int, key string) (err error) { if v := os.Getenv(key); v != "" { *x, err = strconv.Atoi(v) } return } func durationVar(x *time.Duration, key string) (err error) { if v := os.Getenv(key); v != "" { *x, err = time.ParseDuration(v) } return }