Files
proxy/server/pkg/env/env.go
2025-03-05 10:24:13 +08:00

102 lines
2.0 KiB
Go

package env
import (
"fmt"
"log/slog"
"os"
"strconv"
"github.com/joho/godotenv"
)
var (
AppCtrlPort uint16
AppDataPort uint16
AppLogMode string
DbHost string
DbPort uint16
DbDatabase string
DbUsername string
DbPassword string
DbTimezone string
)
func Init() {
// 加载 .env 文件
err := godotenv.Load()
if err != nil {
slog.Debug("没有本地环境变量文件")
}
// AppCtrlPort
appCtrlPortStr := os.Getenv("APP_CTRL_PORT")
if appCtrlPortStr == "" {
panic("环境变量 APP_CTRL_PORT 未设置")
}
appCtrlPort, err := strconv.ParseUint(appCtrlPortStr, 10, 16)
if err != nil {
panic(fmt.Sprintf("环境变量 APP_CTRL_PORT 格式错误: %v", err))
}
AppCtrlPort = uint16(appCtrlPort)
// AppDataPort
appDataPortStr := os.Getenv("APP_DATA_PORT")
if appDataPortStr == "" {
panic("环境变量 APP_DATA_PORT 未设置")
}
appDataPort, err := strconv.ParseUint(appDataPortStr, 10, 16)
if err != nil {
panic(fmt.Sprintf("环境变量 APP_DATA_PORT 格式错误: %v", err))
}
AppDataPort = uint16(appDataPort)
// AppLogMode
appLogMode := os.Getenv("APP_LOG_MODE")
if appLogMode == "" {
AppLogMode = "dev"
}
// DbHost
DbHost = os.Getenv("DB_HOST")
if DbHost == "" {
panic("环境变量 DB_HOST 未设置")
}
// DbPort
dbPortStr := os.Getenv("DB_PORT")
if dbPortStr == "" {
dbPortStr = "5432"
}
dbPort, err := strconv.ParseUint(dbPortStr, 10, 16)
if err != nil {
panic(fmt.Sprintf("环境变量 DB_PORT 格式错误: %v", err))
}
DbPort = uint16(dbPort)
// DbDatabase
DbDatabase = os.Getenv("DB_DATABASE")
if DbDatabase == "" {
panic("环境变量 DB_DATABASE 未设置")
}
// DbUsername
DbUsername = os.Getenv("DB_USERNAME")
if DbUsername == "" {
panic("环境变量 DB_USERNAME 未设置")
}
// DbPassword
DbPassword = os.Getenv("DB_PASSWORD")
if DbPassword == "" {
panic("环境变量 DB_PASSWORD 未设置")
}
// DbTimezone
DbTimezone = os.Getenv("DB_TIMEZONE")
if DbTimezone == "" {
DbTimezone = "Asia/Shanghai"
}
}