mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-05 16:17:00 +08:00
56 lines
1.0 KiB
Go
56 lines
1.0 KiB
Go
package config
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
type config struct {
|
|
APP *appConfig
|
|
DB *dbConfig
|
|
REDIS *redisConfig
|
|
FILE *fileConfig
|
|
GeTui *geTuiConfig
|
|
}
|
|
|
|
var Config = loadConfig(config{
|
|
APP: &AppConfig,
|
|
DB: &DBConfig,
|
|
REDIS: &RedisConfig,
|
|
FILE: &FileConfig,
|
|
GeTui: &GeTuiConfig,
|
|
})
|
|
|
|
func loadConfig(config config) config {
|
|
var envFilePath string
|
|
flag.StringVar(&envFilePath, "env", "", "-env 配置文件路径,默认运行目录下的.env文件")
|
|
flag.Parse()
|
|
if envFilePath == "" {
|
|
envFilePath = ".env"
|
|
}
|
|
// viper.SetConfigType("yaml")
|
|
viper.AddConfigPath(".")
|
|
viper.SetConfigFile(envFilePath)
|
|
viper.AutomaticEnv()
|
|
err := viper.ReadInConfig()
|
|
if err != nil {
|
|
log.Fatal("loadConfig ReadInConfig err:", err)
|
|
}
|
|
|
|
err = viper.Unmarshal(&config)
|
|
if err != nil {
|
|
log.Fatal("loadConfig Unmarshal err:", err)
|
|
}
|
|
return config
|
|
}
|
|
|
|
func init() {
|
|
fmt.Println("AppConfig:", AppConfig)
|
|
fmt.Println("DBConfig:", DBConfig)
|
|
fmt.Println("RedisConfig:", RedisConfig)
|
|
fmt.Println("FileConfig:", FileConfig)
|
|
}
|