summaryrefslogtreecommitdiff
path: root/argv.go
blob: 36f7927888a4adec80bd5febd1aa2aa52211aef7 (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
package main

var argv args

type args struct {
	List      *ListCmd    `arg:"subcommand:list"                      help:"list things"`
	Droplet   *DropletCmd `arg:"subcommand:droplet"                   help:"send events to a droplet"`
	Config    string      `arg:"env:VIRTIGO_HOME"                     help:"defaults to ~/.config/virtigo/"`
	Server    string      `arg:"env:VIRTIGO_SERVER"                   help:"what virtigo cluster to connect to"`
	Localhost bool        `arg:"--localhost"                          help:"use the local libvirt"`
	Daemon    bool        `arg:"--daemon"                             help:"run as a daemon"`
	Verbose   bool        `arg:"--verbose"                            help:"talk more"`
	Port      int         `arg:"--port"     default:"8080"            help:"allow droplet events via http"`
	Xml       []string    `arg:"--libvirt"                            help:"import qemu xml files: --libvirt /etc/libvirt/qemu/*.xml"`
	Admin     bool        `arg:"--admin"                              help:"enter admin mode"`
	Bash      bool        `arg:"--bash"                               help:"generate bash completion"`
	BashAuto  []string    `arg:"--auto-complete"                      help:"todo: move this to go-arg"`
}

type EmptyCmd struct {
}

type testCmd string

type ListCmd struct {
	Droplets    *EmptyCmd `arg:"subcommand:droplets"              help:"list droplets"`
	Hypervisors *EmptyCmd `arg:"subcommand:hypervisors"           help:"list hypervisors"`
	On          bool      `arg:"--on"                             help:"only show things that are on"`
}

type DropletCmd struct {
	Start   *EmptyCmd `arg:"subcommand:start"                 help:"start droplet"`
	Stop    *EmptyCmd `arg:"subcommand:stop"                  help:"stop droplet"`
	Show    *EmptyCmd `arg:"subcommand:show"                  help:"show droplet"`
	Console *EmptyCmd `arg:"subcommand:console"               help:"open serial console"`
	VNC     *EmptyCmd `arg:"subcommand:vnc"                   help:"open VNC console"`
	Spice   *EmptyCmd `arg:"subcommand:spice"                 help:"open spiceconsole"`
	Name    string    `arg:"--name"                           help:"what droplet to start"`
}