summaryrefslogtreecommitdiff
path: root/argv.go
diff options
context:
space:
mode:
Diffstat (limited to 'argv.go')
-rw-r--r--argv.go52
1 files changed, 48 insertions, 4 deletions
diff --git a/argv.go b/argv.go
index 945ff6a..70e8a6a 100644
--- a/argv.go
+++ b/argv.go
@@ -9,16 +9,27 @@ package main
*/
import (
+ "fmt"
+ "os"
+
"go.wit.com/log"
)
var argv args
type args struct {
- Verbose bool `arg:"--verbose" default:"false" help:"talk more"`
- Daemon bool `arg:"--daemon" default:"false" help:"run in daemon mode"`
- Port int `arg:"--port" default:"8080" help:"port to run on"`
- NoPort bool `arg:"--no-port" help:"don't open socket"`
+ Gui *EmptyCmd `arg:"subcommand:gui" help:"open the gui"`
+ List *EmptyCmd `arg:"subcommand:list" help:"list the machines in your zoo"`
+ Upgrade *EmptyCmd `arg:"subcommand:upgrade" help:"upgrade the machines"`
+ Verbose bool `arg:"--verbose" default:"false" help:"talk more"`
+ Daemon bool `arg:"--daemon" default:"false" help:"run in daemon mode"`
+ Port int `arg:"--port" default:"8080" help:"port to run on"`
+ NoPort bool `arg:"--no-port" help:"don't open socket"`
+ Bash bool `arg:"--bash" help:"generate bash completion"`
+ BashAuto []string `arg:"--auto-complete" help:"todo: move this to go-arg"`
+}
+
+type EmptyCmd struct {
}
func (args) Version() string {
@@ -51,3 +62,36 @@ func init() {
ZOOD = log.NewFlag("ZOOD", false, full, short, "show reporting from zood")
WARN = log.NewFlag("WARN", true, full, short, "bad things")
}
+
+// prints help to STDERR // TODO: move everything below this to go-args
+func (args) doBashHelp() {
+ if argv.BashAuto[1] != "''" {
+ // if this is not blank, then the user has typed something
+ return
+ }
+ if argv.BashAuto[0] != ARGNAME {
+ // if this is not the name of the command, the user already started doing something
+ return
+ }
+ if argv.BashAuto[0] == ARGNAME {
+ me.pp.WriteHelp(os.Stderr)
+ return
+ }
+}
+
+func (args) doBashAuto() {
+ switch argv.BashAuto[0] {
+ case "list":
+ fmt.Println("")
+ case "verify":
+ fmt.Println("on")
+ case "upgrade":
+ fmt.Println("")
+ default:
+ if argv.BashAuto[0] == ARGNAME {
+ // list the subcommands here
+ fmt.Println("help list")
+ }
+ }
+ os.Exit(0)
+}