package config import ( "fmt" "github.com/spf13/cast" "os" "sync" "time" "github.com/joho/godotenv" "github.com/sirupsen/logrus" ) var initOnce sync.Once var SystemId int64 func Init(cfgfile string) { initOnce.Do(func() { envFilename := cfgfile // if SysType == "windows" { // envFilename = "local.env" // // go run main.go -c local67.env // flag.StringVar(&envFilename, "c", "local.env", "配置环境") // flag.Parse() // } fmt.Printf("当前运行环境为:%v, 加载的环境变量路径为:%v, 运行路径为:%v \r\n", SysType, envFilename, RootPtah) if err := godotenv.Load(envFilename); err != nil { logrus.Panic("本地环境加载失败", err) return } // 全局修改为上海时区 time.Local, _ = time.LoadLocation("Asia/Shanghai") // 读取翻译文件 if err := LoadLocales("manifest/locales/zh-cn.yaml"); err != nil { logrus.Panic("翻译文件加载失败", err) } BuildLogger() InitDatabase() InitRedis() InitCache() InitNats() InitEtcd() InitElastic() InitCOSClient() InitEntranceIamClient() // 初始化系统id SystemId = cast.ToInt64(os.Getenv("SYSTEM_ID")) }) }