package config import ( "log" "github.com/spf13/viper" ) type threshold struct { Value int `mapstructure: "value"` Color string `mapstructure: "color"` } type server struct { ServerName string `mapstructure: "serverName"` Runmode string `mapstructure: "runmode"` JwtSecret string `mapstructure: "jwtSecret"` JwtExpire string `mapstructure: "jwtExpire"` Url string `mapstructure: "url"` AnalyServerId string `mapstructure: "analyServerId"` NetworkAdapter string `mapstructure: "networkAdapter"` DeviceNum string `mapstructure: "deviceNum"` //设备编号 DeviceType string `mapstructure: "deviceType"` //设备型号 DeviceSerialNum string `mapstructure: "deviceSerialNum"` //设备序列号 MasterVersion string `mapstructure: "masterVersion"` //主控版本 WebVersion string `mapstructure: "webVersion"` //web版本 ChannelCount string `mapstructure: "channelCount"` //通道个数 DiskCount string `mapstructure: "diskCount"` //硬盘个数 SudoPassword string `mapstructure: "sudoPassword"` //系统密码 SysThresholds []threshold `mapstructure: "sysThresholds"` PTZSpeed int `mapstructure: "ptzSpeed"` // 云台移动速度 PatchPath string `mapstructure:"patchPath"` //系统更新包路径 BakPath string `mapstructure:"bakPath"` //系统更新包路径 } var Server = &server{} // wp add es 索引 以及 IP port type esinfo struct { Shards string `mapstructure:"shards"` EsIndex esindexlist `mapstructure:"index"` } type esindexlist struct { AiOcean index `mapstructure:"aiOcean"` } type index struct { IndexName string `mapstructure:"index"` IndexType string `mapstructure:"type"` } type sopath struct { Ip string `mapstructure:"ip"` Port string `mapstructure:"port"` } type elastic struct { IndexName string `mapstructure: "indexName"` IndexType string `mapstructure: "indexType"` } var SoPath = &sopath{} var EsInfo = &esinfo{} var BasicFS = &elastic{} type facedetect struct { Ip string `mapstructure:"Ip"` Port int `mapstructure:"port"` } type dbpersoncompare struct { Ip string `mapstructure:"ip"` Port int `mapstructure:"port"` } type espersoncompare struct { Port int `mapstructure:"port"` Ips []string `mapstructure:"ips"` } var DbPersonCompInfo = &dbpersoncompare{} var EsCompServerInfo = &espersoncompare{} var FaceDetectSet = &facedetect{} type shop struct { Url string `mapstructure:"url"` } var ShopConf = &shop{} // Init is an exported method that takes the environment starts the viper // (external lib) and returns the configuration struct. func Init(env string) { var err error viper.SetConfigType("yaml") viper.SetConfigName(env) viper.AddConfigPath("../config/") err = viper.ReadInConfig() if err != nil { log.Fatal("error on parsing configuration file", err) } viper.UnmarshalKey("es", EsInfo) viper.UnmarshalKey("server", Server) viper.UnmarshalKey("sopath", SoPath) viper.UnmarshalKey("facedetect", FaceDetectSet) viper.UnmarshalKey("dbpersoncompare", DbPersonCompInfo) viper.UnmarshalKey("espersoncompare", EsCompServerInfo) viper.UnmarshalKey("elastic.basicFS", BasicFS) viper.UnmarshalKey("shop", ShopConf) }