summaryrefslogtreecommitdiff
path: root/argv.struct.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-19 05:44:42 -0500
committerJeff Carr <[email protected]>2025-10-19 05:44:42 -0500
commitf730ed88ee48128da1d4f841fd43616621613f00 (patch)
treea511cbe46e3a6ca13c240fc15a03baf90165f09a /argv.struct.go
parent34015f3d4ee487efe329d0387458f609343c2f9f (diff)
new argv that somewhat works betterv0.2.87
Diffstat (limited to 'argv.struct.go')
-rw-r--r--argv.struct.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/argv.struct.go b/argv.struct.go
new file mode 100644
index 0000000..36f7927
--- /dev/null
+++ b/argv.struct.go
@@ -0,0 +1,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"`
+}