package main import ( "fmt" "strings" "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/protobuf/argvpb" ) var VERSION string var BUILDTIME string var APPNAME string = "virtigod" func (a args) Description() string { return ` this daemon talks to virtigo talks to libvirt and/or qemu This sends data back to virtigo. It helps read out the libvirtxml and convert it to protobuf. The name is odd, it's virtigo-D not virti-god. You can query the status directly: # the list of running vms: curl --silent http://localhost:2520/vms # information about libvirt domain for vm 'coriolis': curl --silent http://localhost:2520/dumpdomain?domain=coriolis ` } func (args) MustParse() error { me.pp = arg.MustParse(&argv) return nil } // sends the strings to bash or zsh that will be your options func (a args) DoAutoComplete() error { if argvpb.PB.GetCmd() == "" { matches := []string{"drives", "gui", "--version"} fmt.Fprintf(argvpb.Stdout, " %s", strings.Join(matches, " ")) return nil } var err error if me.pp == nil { me.pp, err = arg.ParseFlagsArgv(&argv) if err != nil { return err } } err = me.pp.WriteHelpForAutocomplete(argvpb.PB.Partial, argvpb.PB.Real...) return err }