github.com/infraboard/keyauth@v0.8.1/conf/load.go (about) 1 package conf 2 3 import ( 4 "fmt" 5 6 "github.com/BurntSushi/toml" 7 "github.com/caarlos0/env/v6" 8 ) 9 10 var ( 11 global *Config 12 ) 13 14 // C 全局配置对象 15 func C() *Config { 16 if global == nil { 17 panic("Load Config first") 18 } 19 20 return global 21 } 22 23 // LoadConfigFromToml 从toml中添加配置文件, 并初始化全局对象 24 func LoadConfigFromToml(filePath string) error { 25 cfg := newConfig() 26 if _, err := toml.DecodeFile(filePath, cfg); err != nil { 27 return err 28 } 29 return cfg.InitGloabl() 30 } 31 32 // LoadConfigFromEnv 从环境变量中加载配置 33 func LoadConfigFromEnv() error { 34 cfg := newConfig() 35 if err := env.Parse(cfg); err != nil { 36 return fmt.Errorf("load config from env, %s", err.Error()) 37 } 38 return cfg.InitGloabl() 39 }