Files
proxy/server/pkg/env/env.go

148 lines
2.8 KiB
Go

package env
import (
"fmt"
"log/slog"
"os"
"strconv"
"github.com/joho/godotenv"
)
var (
AppCtrlPort uint16 = 18080
AppDataPort uint16 = 18081
AppWebPort uint16 = 8848
AppLogMode = "dev"
ClientId string
ClientSecret string
DbHost string
DbPort uint16 = 5432
DbDatabase string
DbUsername string
DbPassword string
DbTimezone = "Asia/Shanghai"
EndpointOnline string
EndpointOffline string
EndpointAssigned string
)
func Init() {
var err = godotenv.Load()
if err != nil {
slog.Debug("没有本地环境变量文件")
}
var value string
value = os.Getenv("APP_CTRL_PORT")
if value != "" {
appCtrlPort, err := strconv.Atoi(value)
if err != nil {
panic(fmt.Sprintf("环境变量 APP_CTRL_PORT 格式错误: %v", err))
}
AppCtrlPort = uint16(appCtrlPort)
}
value = os.Getenv("APP_DATA_PORT")
if value != "" {
appDataPort, err := strconv.Atoi(value)
if err != nil {
panic(fmt.Sprintf("环境变量 APP_DATA_PORT 格式错误: %v", err))
}
AppDataPort = uint16(appDataPort)
}
value = os.Getenv("APP_WEB_PORT")
if value != "" {
appWebPort, err := strconv.Atoi(value)
if err != nil {
panic(fmt.Sprintf("环境变量 APP_WEB_PORT 格式错误: %v", err))
}
AppWebPort = uint16(appWebPort)
}
value = os.Getenv("APP_LOG_MODE")
if value != "" {
AppLogMode = value
}
value = os.Getenv("CLIENT_ID")
if value != "" {
ClientId = value
} else {
panic("环境变量 CLIENT_ID 未设置")
}
value = os.Getenv("CLIENT_SECRET")
if value != "" {
ClientSecret = value
} else {
panic("环境变量 CLIENT_SECRET 未设置")
}
value = os.Getenv("DB_HOST")
if value != "" {
DbHost = os.Getenv("DB_HOST")
} else {
panic("环境变量 DB_HOST 未设置")
}
value = os.Getenv("DB_PORT")
if value != "" {
dbPort, err := strconv.Atoi(value)
if err != nil {
panic(fmt.Sprintf("环境变量 DB_PORT 格式错误: %v", err))
}
DbPort = uint16(dbPort)
}
value = os.Getenv("DB_DATABASE")
if value != "" {
DbDatabase = value
} else {
panic("环境变量 DB_DATABASE 未设置")
}
value = os.Getenv("DB_USERNAME")
if value != "" {
DbUsername = value
} else {
panic("环境变量 DB_USERNAME 未设置")
}
value = os.Getenv("DB_PASSWORD")
if value != "" {
DbPassword = value
} else {
panic("环境变量 DB_PASSWORD 未设置")
}
value = os.Getenv("DB_TIMEZONE")
if value != "" {
DbTimezone = value
}
value = os.Getenv("ENDPOINT_ONLINE")
if value != "" {
EndpointOnline = value
} else {
panic("环境变量 ENDPOINT_ONLINE 未设置")
}
value = os.Getenv("ENDPOINT_OFFLINE")
if value != "" {
EndpointOffline = value
} else {
panic("环境变量 ENDPOINT_OFFLINE 未设置")
}
value = os.Getenv("ENDPOINT_ASSIGNED")
if value != "" {
EndpointAssigned = value
} else {
panic("环境变量 ENDPOINT_ASSIGNED 未设置")
}
}