mirror of
https://github.com/hamster1963/HomeDash-Backend.git
synced 2025-06-17 04:31:23 +08:00
66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
"github.com/gogf/gf/v2/os/gcmd"
|
|
"github.com/gogf/gf/v2/os/glog"
|
|
"github.com/gogf/gf/v2/os/gres"
|
|
"home-network-watcher/internal/boot"
|
|
"home-network-watcher/internal/global/g_functions"
|
|
"home-network-watcher/internal/global/g_index"
|
|
"home-network-watcher/internal/global/g_middleware"
|
|
"home-network-watcher/internal/router/r_hamster_router"
|
|
binInfo "home-network-watcher/utility/bin_utils"
|
|
"runtime"
|
|
)
|
|
|
|
var (
|
|
Main = gcmd.Command{
|
|
Name: "main",
|
|
Usage: "main",
|
|
Brief: "start http server",
|
|
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
|
|
gres.Dump()
|
|
s := g.Server()
|
|
|
|
// 性能分析
|
|
runtime.SetMutexProfileFraction(1) // (非必需)开启对锁调用的跟踪
|
|
runtime.SetBlockProfileRate(1) // (非必需)开启对阻塞操作的跟踪
|
|
s.EnablePProf()
|
|
|
|
// 统一日志服务
|
|
g_functions.SetDefaultHandler()
|
|
// 服务状态码处理
|
|
g_middleware.SMiddlewares.ErrorsStatus(s)
|
|
|
|
// 全局中间件
|
|
s.BindMiddlewareDefault(
|
|
g_middleware.SMiddlewares.MiddlewareCORS,
|
|
g_middleware.SMiddlewares.ResponseHandler,
|
|
)
|
|
|
|
s.Group("/", func(group *ghttp.RouterGroup) {
|
|
// 首页HTML
|
|
group.ALL("/", func(r *ghttp.Request) {
|
|
r.Response.Write(g_index.IndexHTML)
|
|
})
|
|
group.ALL("/version", func(r *ghttp.Request) {
|
|
r.Response.Write(binInfo.VersionString())
|
|
})
|
|
// 接口绑定
|
|
r_hamster_router.BindController(group)
|
|
})
|
|
|
|
// 初始化
|
|
if err := boot.Boot(); err != nil {
|
|
glog.Fatal(ctx, "初始化任务失败: ", err)
|
|
}
|
|
|
|
s.Run()
|
|
return nil
|
|
},
|
|
}
|
|
)
|