package main import ( "fmt" "os" "github.com/spf13/cobra" "warpbox/lib/server" ) func main() { if err := newRootCommand().Execute(); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func newRootCommand() *cobra.Command { rootCmd := &cobra.Command{ Use: "warpbox", Short: "WarpBox command line interface", Long: "WarpBox provides commands for running and managing the WarpBox service.", } var addr string runCmd := &cobra.Command{ Use: "run", Short: "Run the HTTP server", Long: "Run the WarpBox HTTP server. The root endpoint responds with ok.", RunE: func(cmd *cobra.Command, args []string) error { return server.Run(addr) }, } runCmd.Flags().StringVar(&addr, "addr", ":8080", "HTTP server address") rootCmd.AddCommand(runCmd) return rootCmd }