config.go 568 B

1234567891011121314151617181920212223242526272829303132
  1. package config
  2. import "C"
  3. import (
  4. "flag"
  5. "fmt"
  6. "github.com/spf13/viper"
  7. "os"
  8. )
  9. func NewConfig() *viper.Viper {
  10. envConf := os.Getenv("APP_CONF")
  11. if envConf == "" {
  12. flag.StringVar(&envConf, "conf", "config/local.yml", "config path, eg: -conf config/local.yml")
  13. flag.Parse()
  14. }
  15. if envConf == "" {
  16. envConf = "local"
  17. }
  18. fmt.Println("load conf file:", envConf)
  19. return getConfig(envConf)
  20. }
  21. func getConfig(path string) *viper.Viper {
  22. conf := viper.New()
  23. conf.SetConfigFile(path)
  24. err := conf.ReadInConfig()
  25. if err != nil {
  26. panic(err)
  27. }
  28. return conf
  29. }