159 lines
2.7 KiB
Go
159 lines
2.7 KiB
Go
package conf
|
|
|
|
import (
|
|
"flag"
|
|
|
|
"go-common/library/cache/redis"
|
|
"go-common/library/conf/paladin"
|
|
"go-common/library/database/sql"
|
|
ecode "go-common/library/ecode/tip"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/http/blademaster/middleware/verify"
|
|
"go-common/library/net/rpc/warden"
|
|
"go-common/library/net/trace"
|
|
"go-common/library/queue/databus"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
var (
|
|
localConf string
|
|
confName string
|
|
// Conf config
|
|
Conf = &Config{}
|
|
// ArchiveRules 稿件导入规则
|
|
ArchiveRules = &Rules{}
|
|
)
|
|
|
|
// Config .
|
|
type Config struct {
|
|
Log *log.Config
|
|
BM *HTTPGeneral
|
|
Verify *verify.Config
|
|
Tracer *trace.Config
|
|
Redis *redis.Config
|
|
MySQL *sql.Config
|
|
CMSMySQL *sql.Config
|
|
Ecode *ecode.Config
|
|
Berserker *Berserker
|
|
GRPCClient map[string]*GRPCConf
|
|
URLs map[string]string
|
|
Databus map[string]*databus.Config
|
|
BPSCode map[string]map[string]int64
|
|
Upload *Upload
|
|
}
|
|
|
|
//Upload .
|
|
type Upload struct {
|
|
File *UploadFile
|
|
Endpoint *UploadEndPoint
|
|
Auth *UploadAuth
|
|
}
|
|
|
|
//UploadFile .
|
|
type UploadFile struct {
|
|
Prefix string
|
|
Line string
|
|
}
|
|
|
|
//UploadEndPoint .
|
|
type UploadEndPoint struct {
|
|
Main string
|
|
BackUp string
|
|
}
|
|
|
|
//UploadAuth .
|
|
type UploadAuth struct {
|
|
AK string
|
|
SK string
|
|
}
|
|
|
|
//GRPCConf .
|
|
type GRPCConf struct {
|
|
WardenConf *warden.ClientConfig
|
|
Addr string
|
|
}
|
|
|
|
//HTTPGeneral ...
|
|
type HTTPGeneral struct {
|
|
Server *bm.ServerConfig
|
|
Client *bm.ClientConfig
|
|
}
|
|
|
|
// Berserker conf
|
|
type Berserker struct {
|
|
Key *BerSerkerKeyList
|
|
API *BerserkerAPI
|
|
}
|
|
|
|
// BerserkerAPI conf
|
|
type BerserkerAPI struct {
|
|
Rankdaily string
|
|
Userdmg string
|
|
Operaonce string
|
|
}
|
|
|
|
// BerSerkerKeyList conf
|
|
type BerSerkerKeyList struct {
|
|
YYC *BerSerkerKey
|
|
HSC *BerSerkerKey
|
|
LZQ *BerSerkerKey
|
|
}
|
|
|
|
// BerSerkerKey conf
|
|
type BerSerkerKey struct {
|
|
Appkey string
|
|
Secret string
|
|
}
|
|
|
|
// Set .
|
|
func (c *Config) Set(text string) error {
|
|
if _, err := toml.Decode(text, c); err != nil {
|
|
panic(err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Set .
|
|
func (r *Rules) Set(text string) error {
|
|
if _, err := toml.Decode(text, r); err != nil {
|
|
panic(err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func init() {
|
|
//线下使用
|
|
flag.StringVar(&localConf, "localconf", "", "default config path")
|
|
flag.StringVar(&confName, "conf_name", "video-service.toml", "default config filename")
|
|
}
|
|
|
|
// Init init conf
|
|
func Init() error {
|
|
if localConf != "" {
|
|
return local()
|
|
}
|
|
return remote()
|
|
}
|
|
|
|
func local() (err error) {
|
|
_, err = toml.DecodeFile(localConf, &Conf)
|
|
return
|
|
}
|
|
|
|
func remote() (err error) {
|
|
if err := paladin.Init(); err != nil {
|
|
panic(err)
|
|
}
|
|
// var setter
|
|
if err := paladin.Watch(confName, Conf); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
if err := paladin.Watch("rule.toml", ArchiveRules); err != nil {
|
|
panic(err)
|
|
}
|
|
return
|
|
}
|