93 lines
1.4 KiB
Go
93 lines
1.4 KiB
Go
|
|
package env
|
||
|
|
|
||
|
|
import (
|
||
|
|
"log/slog"
|
||
|
|
"os"
|
||
|
|
|
||
|
|
"github.com/gofiber/fiber/v2/log"
|
||
|
|
"github.com/joho/godotenv"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
AppName = "platform"
|
||
|
|
AppPort = "8080"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
DbHost = "localhost"
|
||
|
|
DbPort = "3306"
|
||
|
|
DbName string
|
||
|
|
DbUserName string
|
||
|
|
DbPassword string
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
LogLevel = slog.LevelDebug
|
||
|
|
)
|
||
|
|
|
||
|
|
func Init() {
|
||
|
|
err := godotenv.Load()
|
||
|
|
if err != nil {
|
||
|
|
log.Debug("❓ 没有本地环境变量")
|
||
|
|
} else {
|
||
|
|
log.Debug("✔ 加载本地环境变量")
|
||
|
|
}
|
||
|
|
|
||
|
|
check()
|
||
|
|
}
|
||
|
|
|
||
|
|
func check() {
|
||
|
|
_AppName := os.Getenv("APP_NAME")
|
||
|
|
if _AppName != "" {
|
||
|
|
AppName = _AppName
|
||
|
|
}
|
||
|
|
|
||
|
|
_AppPort := os.Getenv("APP_PORT")
|
||
|
|
if _AppPort != "" {
|
||
|
|
AppPort = _AppPort
|
||
|
|
}
|
||
|
|
|
||
|
|
_DbHost := os.Getenv("DB_HOST")
|
||
|
|
if _DbHost != "" {
|
||
|
|
DbHost = _DbHost
|
||
|
|
}
|
||
|
|
|
||
|
|
_DbPort := os.Getenv("DB_PORT")
|
||
|
|
if _DbPort != "" {
|
||
|
|
DbPort = _DbPort
|
||
|
|
}
|
||
|
|
|
||
|
|
_DbName := os.Getenv("DB_NAME")
|
||
|
|
if _DbName != "" {
|
||
|
|
DbName = _DbName
|
||
|
|
} else {
|
||
|
|
panic("环境变量 DB_NAME 的值为空")
|
||
|
|
}
|
||
|
|
|
||
|
|
_DbUserName := os.Getenv("DB_USERNAME")
|
||
|
|
if _DbUserName != "" {
|
||
|
|
DbUserName = _DbUserName
|
||
|
|
} else {
|
||
|
|
panic("环境变量 DB_USERNAME 的值为空")
|
||
|
|
}
|
||
|
|
|
||
|
|
_DbPassword := os.Getenv("DB_PASSWORD")
|
||
|
|
if _DbPassword != "" {
|
||
|
|
DbPassword = _DbPassword
|
||
|
|
} else {
|
||
|
|
panic("环境变量 DB_PASSWORD 的值为空")
|
||
|
|
}
|
||
|
|
|
||
|
|
_LogLevel := os.Getenv("LOG_LEVEL")
|
||
|
|
switch _LogLevel {
|
||
|
|
case "debug":
|
||
|
|
LogLevel = slog.LevelDebug
|
||
|
|
case "info":
|
||
|
|
LogLevel = slog.LevelInfo
|
||
|
|
case "warn":
|
||
|
|
LogLevel = slog.LevelWarn
|
||
|
|
case "error":
|
||
|
|
LogLevel = slog.LevelError
|
||
|
|
}
|
||
|
|
}
|