2017-05-12 06:48:24 +00:00
|
|
|
package cronsun
|
2017-02-13 00:53:41 +00:00
|
|
|
|
|
|
|
import (
|
2017-07-04 10:33:45 +00:00
|
|
|
"fmt"
|
2017-05-27 02:26:39 +00:00
|
|
|
"os"
|
|
|
|
|
2017-05-09 10:27:32 +00:00
|
|
|
"github.com/shunfei/cronsun/conf"
|
2017-05-12 06:48:24 +00:00
|
|
|
"github.com/shunfei/cronsun/db"
|
2017-02-13 00:53:41 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
initialized bool
|
2017-05-27 02:26:39 +00:00
|
|
|
|
|
|
|
_Uid int
|
2017-02-13 00:53:41 +00:00
|
|
|
)
|
|
|
|
|
2018-02-23 09:07:40 +00:00
|
|
|
func Init(baseConfFile string, watchConfiFile bool) (err error) {
|
2017-02-13 00:53:41 +00:00
|
|
|
if initialized {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
// init id creator
|
|
|
|
if err = initID(); err != nil {
|
2017-07-05 02:32:20 +00:00
|
|
|
return fmt.Errorf("Init UUID Generator failed: %s", err)
|
2017-02-13 00:53:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// init config
|
2018-02-23 09:07:40 +00:00
|
|
|
if err = conf.Init(baseConfFile, watchConfiFile); err != nil {
|
2017-07-05 02:32:20 +00:00
|
|
|
return fmt.Errorf("Init Config failed: %s", err)
|
2017-02-13 00:53:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// init etcd client
|
|
|
|
if DefalutClient, err = NewClient(conf.Config); err != nil {
|
2017-07-05 02:32:20 +00:00
|
|
|
return fmt.Errorf("Connect to ETCD %s failed: %s",
|
2017-07-04 10:33:45 +00:00
|
|
|
conf.Config.Etcd.Endpoints, err)
|
2017-02-13 00:53:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// init mongoDB
|
2017-05-11 10:08:25 +00:00
|
|
|
if mgoDB, err = db.NewMdb(conf.Config.Mgo); err != nil {
|
2017-07-05 02:32:20 +00:00
|
|
|
return fmt.Errorf("Connect to MongoDB %s failed: %s",
|
2017-07-04 10:33:45 +00:00
|
|
|
conf.Config.Mgo.Hosts, err)
|
2017-05-11 10:08:25 +00:00
|
|
|
}
|
2017-02-13 00:53:41 +00:00
|
|
|
|
2017-05-27 02:26:39 +00:00
|
|
|
_Uid = os.Getuid()
|
|
|
|
|
2017-02-13 00:53:41 +00:00
|
|
|
initialized = true
|
|
|
|
return
|
|
|
|
}
|