package main import ( "os" "time" "go.wit.com/log" "go.wit.com/gui" "go.wit.com/lib/debugger" "go.wit.com/lib/gui/digitalocean" ) var title string = "Droplet Control Panel" var myGui *gui.Node var myDo *digitalocean.DigitalOcean func main() { // initialize a new GO GUI instance myGui = gui.New().Default() if os.Getenv("DIGITALOCEAN_TOKEN") == "" { log.Warn("your DIGITALOCEAN_TOKEN environment variable is not set") } // draw the main window cloudApp(myGui) log.Sleep(1) myDo = digitalocean.New(myGui) myDo.Update() myDo.Show() doUpdate() } func cloudApp(n *gui.Node) *gui.Node { win := n.NewWindow(title) // make a group label and a grid // group := win.NewGroup("data").Pad() box := win.Box() grid := box.NewGrid("grid", 2, 1).Pad() grid.NewButton("Show Droplets", func () { if myDo == nil { myDo = digitalocean.New(myGui) } else { myDo.Toggle() } }) grid.NewLabel("initializes the DO golang gui package") grid.NewButton("Create", func () { // myDo.Create("jcarr.wit.com") digitalocean.InitCreateWindow() }) grid.NewLabel("makes a new droplet") box.NewButton("gui debugger", func () { debugger.DebugWindow() }) grid.NewLabel("make sure you have $ENV(DIGITALOCEAN_TOKEN} set to your API token") return win } func doUpdate() { ticker := time.NewTicker(10 * time.Second) defer ticker.Stop() for { select { case <-ticker.C: myDo.Update() } } }