diff options
| author | hachem <im@hachem.wtf> | 2026-08-29 02:17:12 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-29 02:17:12 +0200 |
| commit | e56d21fa04450d118f76347a96a12d1d5477958f (patch) | |
| tree | 06d590ef64153e2ab92306a4a7cc63d6fef47286 /main.go | |
| parent | 43d92fd60d75c4a1260757c75b1e1eefc0ea8952 (diff) | |
setup: prepare go workspace
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 64 |
1 files changed, 64 insertions, 0 deletions
@@ -0,0 +1,64 @@ +// 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 + } +} |
