// Command benson is a Minecraft server manager from hell. // // It is a single binary that exposes two modes: // // benson Start the interactive server-manager CLI // benson bot Run the Discord bot // // Both modes share the same configuration and Modrinth client. package main import ( "fmt" "os" "github.com/le-hachem/benson/internal/bot" "github.com/le-hachem/benson/internal/cli" ) // version is the Benson release version. const version = "1.1.0" func usage() { fmt.Fprint(os.Stderr, `benson — a Minecraft server manager from hell Usage: benson Start the interactive server-manager CLI benson bot Run the Discord bot benson version Print the version benson help Show this help `) } func main() { os.Exit(run(os.Args[1:])) } func run(args []string) int { if len(args) == 0 { if err := cli.Run(version); err != nil { fmt.Fprintln(os.Stderr, "error:", err) return 1 } return 0 } switch args[0] { case "bot": if err := bot.Run(); err != nil { fmt.Fprintln(os.Stderr, "error:", err) return 1 } return 0 case "version", "--version", "-v": fmt.Println("benson", version) return 0 case "help", "--help", "-h": usage() return 0 default: fmt.Fprintf(os.Stderr, "benson: unknown command %q\n\n", args[0]) usage() return 2 } }