package main import ( "fmt" "github.com/gofiber/fiber/v2" "github.com/spf13/cobra" "log" "os" ) var listenAddr = ":3000" var rootCmd = &cobra.Command{ Use: "sport_rec", Short: "Sport Recognition Demo", Long: "Sport Recognition Demo", } func init() { cobra.OnInitialize(initConfig) rootCmd.PersistentFlags().StringVarP(&listenAddr, "listen", "L", ":3000", "Service listen address") rootCmd.PersistentFlags().BoolVarP(&fakeClient, "fake", "F", false, "Fake HTP client instead of pushing") rootCmd.AddCommand(serveCmd) } func initConfig() { } var serveCmd = &cobra.Command{ Use: "serve", Short: "Run service", Run: func(cmd *cobra.Command, args []string) { app := fiber.New() app.Use(func(c *fiber.Ctx) error { log.Println("<-", c.IP(), c.Method(), c.Request().URI()) return c.Next() }) app.Get("/", func(c *fiber.Ctx) error { return c.SendString("Hello, World!") }) app.Post("/api/v1/setScene", setScene) app.Post("/api/v1/setTestCmd", setTestCmd) // app.Post("/api/v1/eventHandle") app.Post("/api/v1/areaConfig", setAreaConfig) app.Get("/api/v1/areaConfig", getAreaConfig) app.Post("/api/v1/stopScene", stopScene) app.Get("/api/v1/stopScene", stopScene) app.Get("/api/v1/getStatus", getStatus) app.Get("/api/v1/getTestStatus", getStatus) log.Fatal(app.Listen(listenAddr)) }, } func main() { if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } }