mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-08 15:52:25 +08:00
71 lines
1.3 KiB
Go
71 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/eiblog/eiblog/pkg/config"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
// Config config
|
|
type Config struct {
|
|
config.APIMode
|
|
|
|
Database config.Database // 数据库配置
|
|
BackupTo string // 备份到, default: qiniu
|
|
Interval string // 备份周期, default: 7d
|
|
Validity int // 备份保留时间, default: 60
|
|
Qiniu config.Qiniu // 七牛OSS配置
|
|
}
|
|
|
|
// Conf 配置
|
|
var Conf Config
|
|
|
|
// load config file
|
|
func init() {
|
|
// run mode
|
|
mode := config.RunModeProd
|
|
if m := os.Getenv("RUN_MODE"); m != "" {
|
|
mode = config.RunMode(m)
|
|
if !mode.IsRunMode() {
|
|
panic("config: unsupported env RUN_MODE: " + mode)
|
|
}
|
|
}
|
|
logrus.Infof("Run mode:%s", mode)
|
|
|
|
// 加载配置文件
|
|
etc, err := config.WorkEtcPath()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
path := filepath.Join(etc, "app.yml")
|
|
|
|
data, err := os.ReadFile(path)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = yaml.Unmarshal(data, &Conf)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
Conf.RunMode = mode
|
|
|
|
// read env
|
|
readDatabaseEnv()
|
|
}
|
|
|
|
func readDatabaseEnv() {
|
|
key := strings.ToUpper(Conf.Name) + "_DB_DRIVER"
|
|
if d := os.Getenv(key); d != "" {
|
|
Conf.Database.Driver = d
|
|
}
|
|
key = strings.ToUpper(Conf.Name) + "_DB_SOURCE"
|
|
if s := os.Getenv(key); s != "" {
|
|
Conf.Database.Source = s
|
|
}
|
|
}
|