package setting import ( "fmt" "os" "path/filepath" "github.com/spf13/viper" ) type DataBaseInfo struct { Db string `toml:"Db" ` DbHost string `toml:"DbHost" ` DbPort string `toml:"DbPort" ` DbName string `toml:"DbName" ` DbUser string `toml:"DbUser" ` DbPassWord string `toml:"DbPassWord" ` } type SettingInfo struct { Limit string `toml:"Limit" ` ColLimit string `toml:"ColLimit" ` } var SqlMaps map[string]any var DbInfo DataBaseInfo var SInfo SettingInfo func init() { v := viper.New() //v.SetConfigFile("/home/gtong/GO/xgx/XGX/config.toml") executablePath, err := os.Executable() if err != nil { // 处理错误 } configFilePath := filepath.Join(filepath.Dir(executablePath), "config.toml") //fmt.Println("configFilePath", configFilePath) v.AddConfigPath(".") v.SetConfigFile(configFilePath) v.SetConfigFile("./config.toml") if err := v.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { fmt.Printf("配置文件不存在:%v\n", err) } else { fmt.Printf("配置文件存在,解析失败:%v\n", err) } } //获取数据库连接信息 database := v.Sub("database") err = database.Unmarshal(&DbInfo) if err != nil { fmt.Println(err) return } //获取基本设置 setting := v.Sub("setting") err = setting.Unmarshal(&SInfo) if err != nil { fmt.Println(err) return } //获取sql SqlMaps = v.GetStringMap("sql") } func PrintSqlMap() { for k := range SqlMaps { fmt.Printf("%s ----> %s\n", k, SqlMaps[k]) } }