高级排程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.4 KiB

package config
import (
"LAPP_AS/utils"
"fmt"
"github.com/spf13/viper"
)
var AppConfig Config
type Config struct {
*DB `mapstructure:"db"`
*Mongo `mapstructure:"mongo"`
*App `mapstructure:"app"`
*ETCD `mapstructure:"etcd"`
}
type DB struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
User string `yaml:"user"`
Password string `yaml:"password"`
Database string `yaml:"database"`
}
type Mongo struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
DataDB string `yaml:"datadb"`
LogDB string `yaml:"logdb"`
}
type App struct {
Port int `yaml:"port"`
TaskNums int `yaml:"tasknums"`
ErrNums int `yaml:"errnums"`
ShellPath string `yaml:"shellpath"`
LocalAddr string `yaml:"localaddr"`
Mod string `yaml:"mod"`
Name string `yaml:"name"`
UseETCD bool `yaml:"useetcd"`
}
type ETCD struct {
Addrs []string `yaml:"addrs"`
Timeout int `yaml:"timeout"`
LockLease int64 `yaml:"locklease"`
ServiceLease int64 `yaml:"servicelease"`
}
func InitConfig() (err error) {
baseDir, err := utils.GetCurrentPath("conf")
fmt.Println("conf:", baseDir)
if err != nil {
return
}
viper.SetConfigName("app_config")
viper.SetConfigType("yaml")
viper.AddConfigPath(baseDir)
if err = viper.ReadInConfig(); err != nil {
return
}
if err = viper.Unmarshal(&AppConfig); err != nil {
return
}
return nil
}