taoshihan 2 months ago
parent 3bcf444d34
commit cbb19ba5c1

@ -3,34 +3,37 @@ package cmd
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/spf13/cobra"
"os" "os"
"github.com/spf13/cobra"
) )
var rootCmd = &cobra.Command{ var rootCmd = &cobra.Command{
Use: "go-fly", Use: "gochat",
Short: "go-fly", Short: "GoChat CLI", // Changed from just "gochat"
Long: `简洁快速的GO语言WEB在线客服 https://gofly.sopans.com`, Long: `Fast and lightweight Go web chat system`, // More descriptive
Args: args, Args: args,
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
// Original logic preserved
}, },
} }
func args(cmd *cobra.Command, args []string) error { func args(cmd *cobra.Command, args []string) error {
if len(args) < 1 { if len(args) < 1 {
return errors.New("requires at least one argument") // More standard error message
return errors.New("至少需要一个参数!")
} }
return nil return nil
} }
func Execute() { func Execute() {
if err := rootCmd.Execute(); err != nil { if err := rootCmd.Execute(); err != nil {
fmt.Println(err) fmt.Fprintln(os.Stderr, "Error:", err) // Better error output format
os.Exit(1) os.Exit(1)
} }
} }
func init() { func init() {
// Original command adding logic preserved
rootCmd.AddCommand(serverCmd) rootCmd.AddCommand(serverCmd)
rootCmd.AddCommand(installCmd) rootCmd.AddCommand(installCmd)
rootCmd.AddCommand(stopCmd) rootCmd.AddCommand(stopCmd)

@ -16,21 +16,24 @@ var (
port string port string
daemon bool daemon bool
) )
var serverCmd = &cobra.Command{ var serverCmd = &cobra.Command{
Use: "server", Use: "server",
Short: "启动http服务", Short: "Start HTTP service",
Example: "gofly server -p 8082", Example: "gochat server -p 8082",
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
run() run()
}, },
} }
func init() { func init() {
serverCmd.PersistentFlags().StringVarP(&port, "port", "p", "8081", "监听端口号") serverCmd.PersistentFlags().StringVarP(&port, "port", "p", "8081", "Port to listen on")
serverCmd.PersistentFlags().BoolVarP(&daemon, "daemon", "d", false, "是否为守护进程模式") serverCmd.PersistentFlags().BoolVarP(&daemon, "daemon", "d", false, "Run as daemon process")
} }
func run() { func run() {
if daemon == true { // Daemon mode setup
if daemon {
logFilePath := "" logFilePath := ""
if dir, err := os.Getwd(); err == nil { if dir, err := os.Getwd(); err == nil {
logFilePath = dir + "/logs/" logFilePath = dir + "/logs/"
@ -41,36 +44,35 @@ func run() {
log.Println(err.Error()) log.Println(err.Error())
} }
} }
d := xdaemon.NewDaemon(logFilePath + "go-fly.log") d := xdaemon.NewDaemon(logFilePath + "gofly.log")
d.MaxCount = 10 d.MaxCount = 10
d.Run() d.Run()
} }
baseServer := "0.0.0.0:" + port baseServer := "0.0.0.0:" + port
log.Println("start server...\r\ngohttp://" + baseServer) log.Println("Starting server...\nURL: http://" + baseServer)
tools.Logger().Println("start server...\r\ngohttp://" + baseServer) tools.Logger().Println("Starting server...\nURL: http://" + baseServer)
// Gin engine setup
engine := gin.Default() engine := gin.Default()
engine.LoadHTMLGlob("static/templates/*") engine.LoadHTMLGlob("static/templates/*")
engine.Static("/assets", "./static") engine.Static("/assets", "./static")
engine.Static("/static", "./static") engine.Static("/static", "./static")
engine.Use(tools.Session("gofly")) engine.Use(tools.Session("gofly"))
engine.Use(middleware.CrossSite) engine.Use(middleware.CrossSite)
//性能监控
//pprof.Register(engine)
//记录日志 // Middlewares
engine.Use(middleware.NewMidLogger()) engine.Use(middleware.NewMidLogger())
// Routers
router.InitViewRouter(engine) router.InitViewRouter(engine)
router.InitApiRouter(engine) router.InitApiRouter(engine)
//记录pid
//os.WriteFile("gofly.sock", []byte(fmt.Sprintf("%d,%d", os.Getppid(), os.Getpid())), 0666) // Background services
//限流类
tools.NewLimitQueue() tools.NewLimitQueue()
//清理
ws.CleanVisitorExpire() ws.CleanVisitorExpire()
//后端websocket
go ws.WsServerBackend() go ws.WsServerBackend()
// Start server
engine.Run(baseServer) engine.Run(baseServer)
} }

Loading…
Cancel
Save