first commit
way too late.
This commit is contained in:
commit
d4f7dc57fc
53 files changed
+3518
No files matched your search
@@ -0,0 +1,100 @@
|
||||
package shared
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
goyaml "gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
var PARAM_FILE string = "params.yml"
|
||||
|
||||
var params *Params
|
||||
|
||||
type MongoParams struct {
|
||||
Url string `yaml:"url,omitempty"`
|
||||
DatabaseName string `yaml:"database_name,omitempty"`
|
||||
DoormanDefinitionCollection string `yaml:"doorman_definition_collection,omitempty"`
|
||||
}
|
||||
|
||||
type NSQParams struct {
|
||||
NSQLookupdUrl string `yaml:"nsq_lookupd_url,omitempty"`
|
||||
}
|
||||
|
||||
type NanoMsgParams struct {
|
||||
NanoMsgUrl string `yaml:"nanomsg_url,omitempty"`
|
||||
}
|
||||
|
||||
type Params struct {
|
||||
Port int `yaml:"port,omitempty"`
|
||||
Host string `yaml:"host,omitempty"`
|
||||
Mongo *MongoParams `yaml:"mongo,omitempty"`
|
||||
NSQ *NSQParams `yaml:"nsq,omitempty"`
|
||||
NanoMsg *NanoMsgParams `yaml:"nanomsg,omitempty"`
|
||||
|
||||
Database string `yaml:"database,omitempty"`
|
||||
MessageQueue string `yaml:"message_queue,omitempty"`
|
||||
}
|
||||
|
||||
func (p *Params) UseMongoDb() bool {
|
||||
db := strings.ToLower(p.Database)
|
||||
return db == "mongo" || db == "mongodb"
|
||||
}
|
||||
|
||||
func (p *Params) UseNSQ() bool {
|
||||
m := strings.ToLower(p.MessageQueue)
|
||||
return m == "nsq"
|
||||
}
|
||||
|
||||
func (p *Params) UseNanomsg() bool {
|
||||
m := strings.ToLower(p.MessageQueue)
|
||||
return m == "nanomsg"
|
||||
}
|
||||
|
||||
func (p *Params) InsertDefaultValues() *Params {
|
||||
if p.Host == "" {
|
||||
p.Host = "localhost"
|
||||
}
|
||||
if p.Port == 0 {
|
||||
p.Port = 1999
|
||||
}
|
||||
if p.Mongo == nil {
|
||||
p.Mongo = new(MongoParams)
|
||||
}
|
||||
if p.NSQ == nil {
|
||||
p.NSQ = new(NSQParams)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
func LoadFromYamlFile(fileName string) (*Params, error) {
|
||||
if !Exists(fileName) {
|
||||
return new(Params).InsertDefaultValues(), nil
|
||||
}
|
||||
data, err := ioutil.ReadFile(fileName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return LoadFromYamlData(data)
|
||||
}
|
||||
|
||||
func LoadFromYamlData(data []byte) (*Params, error) {
|
||||
var err error
|
||||
p := new(Params)
|
||||
if err = goyaml.Unmarshal(data, p); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return p.InsertDefaultValues(), nil
|
||||
}
|
||||
|
||||
func GetParams() *Params {
|
||||
return params
|
||||
}
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
if params, err = LoadFromYamlFile(PARAM_FILE); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user