| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | package mainimport (	"flag"	"fmt"	"github.com/0xJacky/Nginx-UI/internal/kernal"	"github.com/0xJacky/Nginx-UI/internal/logger"	"github.com/0xJacky/Nginx-UI/internal/nginx"	"github.com/0xJacky/Nginx-UI/internal/upgrader"	"github.com/0xJacky/Nginx-UI/router"	"github.com/0xJacky/Nginx-UI/settings"	"github.com/gin-gonic/gin"	"github.com/jpillora/overseer"	"github.com/jpillora/overseer/fetcher"	"log"	"net/http")func Program(state overseer.State) {	defer logger.Sync()	logger.Infof("Nginx configuration directory: %s", nginx.GetConfPath())	kernal.Boot()	if state.Listener != nil {		err := http.Serve(state.Listener, router.InitRouter())		if err != nil {			logger.Error(err)		}	}	logger.Info("Server exited")}func main() {	var confPath string	flag.StringVar(&confPath, "config", "app.ini", "Specify the configuration file")	flag.Parse()	settings.Init(confPath)	gin.SetMode(settings.ServerSettings.RunMode)	r, err := upgrader.GetRuntimeInfo()	if err != nil {		log.Fatalln(err)	}	overseer.Run(overseer.Config{		Program:          Program,		Address:          fmt.Sprintf("%s:%s", settings.ServerSettings.HttpHost, settings.ServerSettings.HttpPort),		Fetcher:          &fetcher.File{Path: r.ExPath},		TerminateTimeout: 0,	})}
 |