separate frontend repository
This commit is contained in:
+127
@@ -0,0 +1,127 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"log"
|
||||
"s-ui/config"
|
||||
"s-ui/core"
|
||||
"s-ui/cronjob"
|
||||
"s-ui/database"
|
||||
"s-ui/logger"
|
||||
"s-ui/service"
|
||||
"s-ui/sub"
|
||||
"s-ui/web"
|
||||
|
||||
"github.com/op/go-logging"
|
||||
)
|
||||
|
||||
type APP struct {
|
||||
service.SettingService
|
||||
configService *service.ConfigService
|
||||
webServer *web.Server
|
||||
subServer *sub.Server
|
||||
cronJob *cronjob.CronJob
|
||||
logger *logging.Logger
|
||||
core *core.Core
|
||||
}
|
||||
|
||||
func NewApp() *APP {
|
||||
return &APP{}
|
||||
}
|
||||
|
||||
func (a *APP) Init() error {
|
||||
log.Printf("%v %v", config.GetName(), config.GetVersion())
|
||||
|
||||
a.initLog()
|
||||
|
||||
err := database.InitDB(config.GetDBPath())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Init Setting
|
||||
a.SettingService.GetAllSetting()
|
||||
|
||||
a.core = core.NewCore()
|
||||
|
||||
a.cronJob = cronjob.NewCronJob()
|
||||
a.webServer = web.NewServer()
|
||||
a.subServer = sub.NewServer()
|
||||
|
||||
a.configService = service.NewConfigService(a.core)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *APP) Start() error {
|
||||
loc, err := a.SettingService.GetTimeLocation()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
trafficAge, err := a.SettingService.GetTrafficAge()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = a.cronJob.Start(loc, trafficAge)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = a.webServer.Start()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = a.subServer.Start()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = a.configService.StartCore("")
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *APP) Stop() {
|
||||
a.cronJob.Stop()
|
||||
err := a.subServer.Stop()
|
||||
if err != nil {
|
||||
logger.Warning("stop Sub Server err:", err)
|
||||
}
|
||||
err = a.webServer.Stop()
|
||||
if err != nil {
|
||||
logger.Warning("stop Web Server err:", err)
|
||||
}
|
||||
err = a.configService.StopCore()
|
||||
if err != nil {
|
||||
logger.Warning("stop Core err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (a *APP) initLog() {
|
||||
switch config.GetLogLevel() {
|
||||
case config.Debug:
|
||||
logger.InitLogger(logging.DEBUG)
|
||||
case config.Info:
|
||||
logger.InitLogger(logging.INFO)
|
||||
case config.Warn:
|
||||
logger.InitLogger(logging.WARNING)
|
||||
case config.Error:
|
||||
logger.InitLogger(logging.ERROR)
|
||||
default:
|
||||
log.Fatal("unknown log level:", config.GetLogLevel())
|
||||
}
|
||||
}
|
||||
|
||||
func (a *APP) RestartApp() {
|
||||
a.Stop()
|
||||
a.Start()
|
||||
}
|
||||
|
||||
func (a *APP) GetCore() *core.Core {
|
||||
return a.core
|
||||
}
|
||||
Reference in New Issue
Block a user