mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 01:57:19 +08:00
46 lines
938 B
Go
46 lines
938 B
Go
package bootstrap
|
|
|
|
import (
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/knadh/koanf/parsers/yaml"
|
|
"github.com/knadh/koanf/providers/file"
|
|
"github.com/knadh/koanf/v2"
|
|
|
|
"github.com/tnb-labs/panel/internal/app"
|
|
"github.com/tnb-labs/panel/pkg/io"
|
|
)
|
|
|
|
func NewConf() (*koanf.Koanf, error) {
|
|
config := "/usr/local/etc/panel/config.yml"
|
|
if !io.Exists(config) {
|
|
config = "config.yml"
|
|
}
|
|
|
|
conf := koanf.New(".")
|
|
if err := conf.Load(file.Provider(config), yaml.Parser()); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
initGlobal(conf)
|
|
return conf, nil
|
|
}
|
|
|
|
func initGlobal(conf *koanf.Koanf) {
|
|
app.Key = conf.MustString("app.key")
|
|
if len(app.Key) != 32 {
|
|
log.Fatalf("app key must be 32 characters")
|
|
}
|
|
|
|
app.Root = conf.MustString("app.root")
|
|
app.Locale = conf.MustString("app.locale")
|
|
|
|
// 初始化时区
|
|
loc, err := time.LoadLocation(conf.MustString("app.timezone"))
|
|
if err != nil {
|
|
log.Fatalf("failed to load timezone: %v", err)
|
|
}
|
|
time.Local = loc
|
|
}
|