mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-10 16:42:26 +08:00
84 lines
1.5 KiB
Go
84 lines
1.5 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/eiblog/eiblog/pkg/config"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
var (
|
|
// Conf 配置
|
|
Conf Config
|
|
// EtcDir 工作目录
|
|
EtcDir string
|
|
)
|
|
|
|
// Config config
|
|
type Config struct {
|
|
config.APIMode
|
|
// 静态资源版本, 每次更改了 js/css 都需要提高该值
|
|
StaticVersion int
|
|
// 数据库配置
|
|
Database config.Database
|
|
// 热词, 手动指定, 用于搜索
|
|
HotWords []string
|
|
// Elasticsearch 配置
|
|
ESHost string
|
|
|
|
General config.General
|
|
Disqus config.Disqus
|
|
Google config.Google
|
|
Qiniu config.Qiniu
|
|
Twitter config.Twitter
|
|
FeedRPC config.FeedRPC
|
|
Account config.Account
|
|
Pages []config.CustomPage
|
|
}
|
|
|
|
// init 初始化配置
|
|
func init() {
|
|
// run mode
|
|
mode := config.RunMode(os.Getenv("RUN_MODE"))
|
|
if !mode.IsRunMode() {
|
|
panic("config: unsupported env RUN_MODE: " + mode)
|
|
}
|
|
logrus.Infof("Run mode:%s", mode)
|
|
|
|
// 加载配置文件
|
|
var err error
|
|
EtcDir, err = config.WorkEtcPath()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
path := filepath.Join(EtcDir, "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
|
|
|
|
// 读取环境变量配置
|
|
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
|
|
}
|
|
}
|