package config import ( "log" "os" "strconv" "time" ) func Location() *time.Location { env, ok := os.LookupEnv("LUCIFER_LOCATION") if !ok { return time.UTC } loc, err := time.LoadLocation(env) if err != nil { log.Printf("Location lookup failed: %s (%s)", env, err.Error()) return time.UTC } return loc } func MySqlHost() string { return strEnv("LUCIFER_MYSQL_HOST") } func MySqlPort() int { return intEnv("LUCIFER_MYSQL_PORT") } func MySqlSchema() string { return strEnv("LUCIFER_MYSQL_SCHEMA") } func MySqlUsername() string { return strEnv("LUCIFER_MYSQL_USERNAME") } func MySQlPassword() string { return strEnv("LUCIFER_MYSQL_PASSWORD") } func ServerPort() int { return intEnv("LUCIFER_SERVER_PORT") } func strEnv(key string) string { env, ok := os.LookupEnv(key) if !ok { panic("missing environment variable: " + key) } return env } func intEnv(key string) int { val, err := strconv.Atoi(strEnv(key)) if err != nil { panic("invalid environment variable: " + key) } return val }