github.com/nxtrace/NTrace-core@v1.3.1-0.20240513132635-39169291e8c9/config/viper.go (about)

     1  package config
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/spf13/viper"
     7  )
     8  
     9  func InitConfig() {
    10  
    11  	// 配置文件名, 不加扩展
    12  	viper.SetConfigName("nt_config") // name of config file (without extension)
    13  	// 设置文件的扩展名
    14  	viper.SetConfigType("yaml") // REQUIRED if the config file does not have the extension in the name
    15  	// 查找配置文件所在路径
    16  	viper.AddConfigPath("/etc/bin/nexttrace/")
    17  	viper.AddConfigPath("/usr/local/bin/nexttrace/")
    18  	// 在当前路径进行查找
    19  	viper.AddConfigPath(".")
    20  	// viper.AddConfigPath("./config/")
    21  
    22  	// 配置默认值
    23  	viper.SetDefault("ptrPath", "./ptr.csv")
    24  	viper.SetDefault("geoFeedPath", "./geofeed.csv")
    25  
    26  	// 开始查找并读取配置文件
    27  	err := viper.ReadInConfig() // Find and read the config file
    28  	if err != nil {             // Handle errors reading the config file
    29  		fmt.Println("未能找到配置文件,我们将在您的运行目录为您创建 nt_config.yaml 默认配置")
    30  		err := viper.SafeWriteConfigAs("./nt_config.yaml")
    31  		if err != nil {
    32  			return
    33  		}
    34  	}
    35  
    36  	err = viper.ReadInConfig()
    37  	if err != nil {
    38  		return
    39  	}
    40  }