diff options
Diffstat (limited to 'cmd/main.go')
-rw-r--r-- | cmd/main.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..9cacf98 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "os" + "io" + "fmt" + "golang.flu0r1ne.net/planr/cmd/sub" +) + +const ( + VERSION = "0.0.1" +) + +func printUsage(w io.Writer) { + fmt.Fprintf (w, "usage: %s command args ... \n", os.Args[0]) + fmt.Fprintln(w, " help ") + fmt.Fprintln(w, " version ") + fmt.Fprintln(w, " build ") + fmt.Fprintln(w, " evaluate ") +} + +func dieUsage() { + printUsage(os.Stderr) + os.Exit(1) +} + +func main() { + + if len(os.Args) < 2 { + dieUsage() + } + + subcommand := os.Args[1] + subargs := os.Args[2:] + + switch subcommand { + case "version": + fmt.Printf("%s\n", VERSION) + case "build": + sub.Build(subargs) + case "evaluate": + sub.Evaluate(subargs) + case "help", "-h", "-help", "--help": + printUsage(os.Stdout) + default: + fmt.Fprintf(os.Stderr, "unrecognized command %s\n", subcommand) + dieUsage() + } + +} |