Initial fork commit.
Some checks failed
Release S-UI / build-frontend (push) Failing after 1m53s
Release S-UI / build-386 (push) Has been skipped
Release S-UI / build-amd64 (push) Has been skipped
Release S-UI / build-armv5 (push) Has been skipped
Release S-UI / build-armv6 (push) Has been skipped
Release S-UI / build-armv7 (push) Has been skipped
Release S-UI / build-s390x (push) Has been skipped
Release S-UI / build-arm64 (push) Has been skipped
Build S-UI for Windows / build-frontend (push) Failing after 2s
Build S-UI for Windows / build-windows-amd64 (push) Has been skipped
Build S-UI for Windows / build-windows-arm64 (push) Has been skipped
Some checks failed
Release S-UI / build-frontend (push) Failing after 1m53s
Release S-UI / build-386 (push) Has been skipped
Release S-UI / build-amd64 (push) Has been skipped
Release S-UI / build-armv5 (push) Has been skipped
Release S-UI / build-armv6 (push) Has been skipped
Release S-UI / build-armv7 (push) Has been skipped
Release S-UI / build-s390x (push) Has been skipped
Release S-UI / build-arm64 (push) Has been skipped
Build S-UI for Windows / build-frontend (push) Failing after 2s
Build S-UI for Windows / build-windows-amd64 (push) Has been skipped
Build S-UI for Windows / build-windows-arm64 (push) Has been skipped
Signed-off-by: Pavel Kirilin <s3riussan@gmail.com>
This commit is contained in:
128
app/app.go
Normal file
128
app/app.go
Normal file
@@ -0,0 +1,128 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/alireza0/s-ui/config"
|
||||
"github.com/alireza0/s-ui/core"
|
||||
"github.com/alireza0/s-ui/cronjob"
|
||||
"github.com/alireza0/s-ui/database"
|
||||
"github.com/alireza0/s-ui/logger"
|
||||
"github.com/alireza0/s-ui/service"
|
||||
"github.com/alireza0/s-ui/sub"
|
||||
"github.com/alireza0/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