diff options
| author | Jeff Carr <[email protected]> | 2025-03-10 04:36:35 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-03-10 04:36:35 -0500 |
| commit | f9515280cf8ee5dd71be3b8e749e6405c4e77ca6 (patch) | |
| tree | 6290b07ea07284ec0234146cb3a193a7dbd6c80c | |
| parent | 30a5eb56a210c28feca0098fd9e6dc340f494b9f (diff) | |
make admin mode
| -rw-r--r-- | Makefile | 9 | ||||
| -rw-r--r-- | argv.go | 8 | ||||
| -rw-r--r-- | doAdminGui.go | 52 | ||||
| -rw-r--r-- | exit.go | 24 | ||||
| -rw-r--r-- | main.go | 5 |
5 files changed, 91 insertions, 7 deletions
@@ -6,9 +6,7 @@ BUILDTIME = $(shell date +%Y.%m.%d) # create the go.mod and go.sum if this is a brand new repo REDOMOD = $(shell if [ -e go.sum ]; then echo go.sum exists; else GO111MODULE= go mod init; GO111MODULE= go mod tidy; fi) -all: build - ./virtigo --version - @#./virtigo --gui gocui +all: install @echo build worked build: goimports vet @@ -20,9 +18,12 @@ verbose: -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" install: - GO111MODULE=off go install \ + GO111MODULE=off go install -v -x \ -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" +andlabs: verbose + ./virtigo --gui andlabs + # makes a .deb package debian: rm -f ~/incoming/virtigo*deb @@ -11,9 +11,11 @@ import "go.wit.com/log" var argv args type args struct { - Xml []string `arg:"--libvirt" help:"import qemu xml files: --libvirt /etc/libvirt/qemu/*.xml"` - Config string `arg:"env:VIRTIGO_HOME" help:"defaults to ~/.config/virtigo/"` - Port int `arg:"--port" default:"8080" help:"allow droplet events via http"` + Verbose bool `arg:"--verbose" help:"talk more"` + Config string `arg:"env:VIRTIGO_HOME" help:"defaults to ~/.config/virtigo/"` + Port int `arg:"--port" default:"8080" help:"allow droplet events via http"` + Server string `arg:"env:VIRTIGO_SERVER" help:"what virtigo cluster to connect to"` + Xml []string `arg:"--libvirt" help:"import qemu xml files: --libvirt /etc/libvirt/qemu/*.xml"` } // Daemon bool `arg:"--daemon" help:"run in daemon mode"` diff --git a/doAdminGui.go b/doAdminGui.go new file mode 100644 index 0000000..20d6351 --- /dev/null +++ b/doAdminGui.go @@ -0,0 +1,52 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +// An app to submit patches for the 30 GO GUI repos + +import ( + "os" + "time" + + "go.wit.com/gui" + "go.wit.com/lib/gadgets" + "go.wit.com/log" +) + +// refresh the windows & tables the user has open +func refresh() { + time.Sleep(90 * time.Second) + if argv.Verbose { + log.Info("virtigo scan here") + } +} + +func doAdminGui() { + me.myGui = gui.New() + me.myGui.InitEmbed(resources) + me.myGui.Default() + + win := gadgets.NewGenericWindow("Virtigo: (run your cluster)", "virtigo stuff") + win.Custom = func() { + log.Warn("Main window close") + os.Exit(0) + } + + grid := win.Group.RawGrid() + + grid.NewButton("show hyperbisors", func() { + }) + + grid.NewButton("show droplets", func() { + }) + + grid.NewButton("clean exit", func() { + okExit("admin close") + }) + + // sit here forever refreshing the GUI + for { + refresh() + } +} @@ -0,0 +1,24 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "os" + + "go.wit.com/log" +) + +func okExit(note string) { + if note != "" { + log.Info("virtigo exit:", note, "ok") + } + me.myGui.Close() + os.Exit(0) +} + +func badExit(err error) { + log.Info("virtigo failed: ", err) + me.myGui.Close() + os.Exit(-1) +} @@ -37,6 +37,11 @@ func main() { os.Setenv("VIRTIGO_HOME", fullpath) } + if argv.Server != "" { + doAdminGui() + okExit("admin close") + } + // set defaults me.unstable = time.Now() // initialize the grid as unstable me.changed = false |
