56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
type Config struct {
|
|
HTTPAddr string
|
|
StaticDir string
|
|
MySQLDSN string
|
|
RedisAddr string
|
|
RedisUsername string
|
|
RedisPassword string
|
|
RedisDB int
|
|
TDengineDSN string
|
|
TDengineDatabase string
|
|
CapacityCheckBin string
|
|
AuthToken string
|
|
}
|
|
|
|
func Load() Config {
|
|
return Config{
|
|
HTTPAddr: env("HTTP_ADDR", ":20300"),
|
|
StaticDir: env("STATIC_DIR", ""),
|
|
MySQLDSN: os.Getenv("MYSQL_DSN"),
|
|
RedisAddr: os.Getenv("REDIS_ADDR"),
|
|
RedisUsername: os.Getenv("REDIS_USERNAME"),
|
|
RedisPassword: os.Getenv("REDIS_PASSWORD"),
|
|
RedisDB: envInt("REDIS_DB", 50),
|
|
TDengineDSN: os.Getenv("TDENGINE_DSN"),
|
|
TDengineDatabase: env("TDENGINE_DATABASE", "lingniu_vehicle_ts"),
|
|
CapacityCheckBin: os.Getenv("CAPACITY_CHECK_BIN"),
|
|
AuthToken: os.Getenv("AUTH_TOKEN"),
|
|
}
|
|
}
|
|
|
|
func env(key, fallback string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func envInt(key string, fallback int) int {
|
|
raw := os.Getenv(key)
|
|
if raw == "" {
|
|
return fallback
|
|
}
|
|
value, err := strconv.Atoi(raw)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return value
|
|
}
|