56 lines
917 B
Go
56 lines
917 B
Go
package main
|
|
|
|
import (
|
|
"github.com/op/go-logging"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"x-ui/config"
|
|
"x-ui/database"
|
|
"x-ui/logger"
|
|
"x-ui/web"
|
|
)
|
|
|
|
func main() {
|
|
log.Printf("%v %v", config.GetName(), config.GetVersion())
|
|
|
|
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())
|
|
}
|
|
|
|
err := database.InitDB(config.GetDBPath())
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
var server *web.Server
|
|
|
|
server = web.NewServer()
|
|
go server.Run()
|
|
|
|
sigCh := make(chan os.Signal, 1)
|
|
signal.Notify(sigCh, syscall.SIGHUP)
|
|
for {
|
|
sig := <-sigCh
|
|
|
|
if sig == syscall.SIGHUP {
|
|
server.Stop()
|
|
server = web.NewServer()
|
|
go server.Run()
|
|
} else {
|
|
return
|
|
}
|
|
}
|
|
|
|
}
|