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  }