package http

import (
	"fmt"
	"gitee.ltd/lxh/logger/log"
	"github.com/gin-contrib/pprof"
	"github.com/spf13/cast"
	"net/http"
	"os"
	"wireguard-ui/config"
	"wireguard-ui/http/router"
)

// Kernel
// @description: http启动
// @return error
func Kernel() error {
	router.Rooters()
	handler := router.InitRouter()
	addr := fmt.Sprintf(":%d", config.Config.Http.Port)

	if cast.ToBool(os.Getenv("ENABLED_PPROF")) {
		pprof.Register(handler, "/monitoring")
	}

	httpServer := http.Server{
		Addr:    addr,
		Handler: handler,
	}

	log.Infof("[HTTP] server runing in %s", addr)
	return httpServer.ListenAndServe()
}
