148 lines
2.8 KiB
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 未设置")
|
|
}
|
|
}
|