package config
|
|
|
|
import (
|
|
"github.com/spf13/viper"
|
|
"gopkg.in/yaml.v2"
|
|
"leit.com/leit_seat_aps/common"
|
|
"os"
|
|
"fmt"
|
|
)
|
|
|
|
type EnvConfig struct {
|
|
DbType string `yaml:"dbtype"`
|
|
Server string `yaml:"server"`
|
|
Ip string `yaml:"ip"`
|
|
User string `yaml:"user"`
|
|
Password string `yaml:"password"`
|
|
DbName string `yaml:"dbname"`
|
|
Port int `yaml:"port"`
|
|
SalveDbType string `yaml:"salvedbtype"`
|
|
SalveServer string `yaml:"salveserver"`
|
|
SalveIp string `yaml:"salveip"`
|
|
SalveUser string `yaml:"salveuser"`
|
|
SalvePassword string `yaml:"salvepassword"`
|
|
SalveDbName string `yaml:"salvedbname"`
|
|
SalvePort int `yaml:"salveport"`
|
|
Finr int `yaml:"finr"`
|
|
Filefolder string `yaml:"filefolder"`
|
|
Crontime string `yaml:"crontime"`
|
|
TemplatePath string `yaml:"templatepath"`
|
|
ReadTaskInterval int `yaml:"readtaskinterval"`
|
|
PrinterType string `yaml:"printertype"`
|
|
Inbox string `yaml:"inbox"`
|
|
Outbox string `yaml:"outbox"`
|
|
Day int `yaml:"day"`
|
|
Num int `yaml:"num"`
|
|
TimeInterval int64 `yaml:"timeinterval"`
|
|
Printobjtype string `yaml:"printobjtype"`
|
|
Msgtype string `yaml:"msgtype"`
|
|
Begtime string `yaml:"begtime"`
|
|
Endtime string `yaml:"endtime"`
|
|
Shiptog bool `yaml:"shiptog"`
|
|
Packtog bool `yaml:"packtog"`
|
|
}
|
|
|
|
var ConfValue EnvConfig
|
|
|
|
//read yaml config
|
|
//注:path为yaml或yml文件的路径
|
|
func ReadYamlConfig(path string) (*EnvConfig, error) {
|
|
f, err := os.Open(path)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
} else {
|
|
yaml.NewDecoder(f).Decode(&ConfValue)
|
|
}
|
|
defer f.Close()
|
|
|
|
return &ConfValue, nil
|
|
}
|
|
|
|
var AppConfig Config
|
|
|
|
type Config struct {
|
|
*App `mapstructure:"app"`
|
|
*ETCD `mapstructure:"etcd"`
|
|
}
|
|
|
|
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 := common.GetCurrentPath("config")
|
|
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
|
|
}
|