blob: cd9c607723e4b37178fabbe2a5b0e1278e402da5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
}
}
|