commit
5aacba7ff2
|
@ -0,0 +1,7 @@
|
|||
control-panel-dns
|
||||
/files/*
|
||||
/*.deb
|
||||
*.swp
|
||||
/plugins/*
|
||||
|
||||
control-panel-digitalocean
|
|
@ -0,0 +1,26 @@
|
|||
# export GO111MODULE="off"
|
||||
run: build
|
||||
reset
|
||||
./control-panel-digitalocean --gui-debug
|
||||
|
||||
build-release:
|
||||
go get -v -u -x .
|
||||
go build -v -o control-panel-digitalocean
|
||||
./control-panel-digitalocean
|
||||
|
||||
build:
|
||||
go get -v -x .
|
||||
go build -v -o control-panel-digitalocean
|
||||
|
||||
update:
|
||||
go get -v -u -x .
|
||||
|
||||
log:
|
||||
reset
|
||||
tail -f /tmp/witgui.* /tmp/guilogfile
|
||||
|
||||
gocui: build
|
||||
./control-panel-digitalocean -gui gocui
|
||||
|
||||
quiet:
|
||||
./control-panel-digitalocean >/tmp/witgui.log.stderr 2>&1
|
|
@ -0,0 +1,18 @@
|
|||
package main
|
||||
|
||||
/*
|
||||
this enables command line options from other packages like 'gui' and 'log'
|
||||
*/
|
||||
|
||||
import (
|
||||
arg "github.com/alexflint/go-arg"
|
||||
"go.wit.com/log"
|
||||
|
||||
"go.wit.com/gui/gui"
|
||||
)
|
||||
|
||||
|
||||
func init() {
|
||||
arg.MustParse()
|
||||
log.Info("INIT() gui args.ArgDebug =", gui.ArgDebug())
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/gui"
|
||||
"go.wit.com/gui/digitalocean"
|
||||
)
|
||||
|
||||
var title string = "Cloud App"
|
||||
var myGui *gui.Node
|
||||
var myDo *digitalocean.DigitalOcean
|
||||
|
||||
func main() {
|
||||
// initialize a new GO GUI instance
|
||||
myGui = gui.New().Default()
|
||||
|
||||
// draw the main window
|
||||
cloudApp(myGui)
|
||||
|
||||
log.Sleep(1)
|
||||
myDo = digitalocean.New(myGui)
|
||||
myDo.Update()
|
||||
myDo.Show()
|
||||
|
||||
doUpdate()
|
||||
// This is just a optional goroutine to watch that things are alive
|
||||
gui.Watchdog()
|
||||
gui.StandardExit()
|
||||
}
|
||||
|
||||
func cloudApp(n *gui.Node) *gui.Node {
|
||||
win := n.NewWindow(title)
|
||||
|
||||
// make a group label and a grid
|
||||
group := win.NewGroup("data").Pad()
|
||||
grid := group.NewGrid("grid", 2, 1).Pad()
|
||||
|
||||
grid.NewButton("New()", func () {
|
||||
myDo = digitalocean.New(myGui)
|
||||
})
|
||||
grid.NewLabel("initializes the DO golang gui package")
|
||||
|
||||
grid.NewButton("Show", func () {
|
||||
myDo.Show()
|
||||
})
|
||||
grid.NewLabel("will show the DO window")
|
||||
|
||||
grid.NewButton("Hide", func () {
|
||||
myDo.Hide()
|
||||
})
|
||||
grid.NewLabel("will hide the DO window")
|
||||
|
||||
grid.NewButton("Update", func () {
|
||||
myDo.Update()
|
||||
})
|
||||
grid.NewLabel("polls DO via the API to find the state of all your droplets")
|
||||
|
||||
grid.NewButton("Create", func () {
|
||||
// myDo.Create("jcarr.wit.com")
|
||||
digitalocean.InitCreateWindow()
|
||||
})
|
||||
grid.NewLabel("makes a new droplet")
|
||||
|
||||
return win
|
||||
}
|
||||
|
||||
func doUpdate() {
|
||||
ticker := time.NewTicker(10 * time.Second)
|
||||
defer ticker.Stop()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-ticker.C:
|
||||
myDo.Update()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue