diff --git a/doGui.go b/doGui.go index 8707c32..99fae79 100644 --- a/doGui.go +++ b/doGui.go @@ -69,6 +69,10 @@ func doGui() { log.Info("todo: start a list here!") }) + grid.NewButton("ConfigSave()", func() { + saveMachineState() + }) + // sit here forever refreshing the GUI for { refresh() diff --git a/windowZood.go b/windowZood.go index 80ebeb3..b71d770 100644 --- a/windowZood.go +++ b/windowZood.go @@ -60,23 +60,10 @@ func makeZoodWin() *stdTableWin { stdw.outOfDate = grid.NewCheckbox("out of date") stdw.showAll = grid.NewCheckbox("all") grid.NewButton("upgrade 10", func() { - var count int - all := me.machines.All() - for all.Scan() { - m := all.Next() - mtime := m.Laststamp.AsTime() - if time.Since(mtime) > 10*time.Hour { - continue - } - if m.FindVersion("zood") != me.zood.version { - count += 1 - m.Upgrade = true - log.Info("upgrade", m.Hostname, count) - } - if count > 9 { - return - } - } + sendUpgrade(10) + }) + grid.NewButton("upgrade all", func() { + sendUpgrade(-1) }) // make a box at the bottom of the window for the protobuf table @@ -86,6 +73,26 @@ func makeZoodWin() *stdTableWin { return stdw } +func sendUpgrade(i int) { + var count int + all := me.machines.All() + for all.Scan() { + m := all.Next() + mtime := m.Laststamp.AsTime() + if time.Since(mtime) > 10*time.Hour { + continue + } + if m.FindVersion("zood") != me.zood.version { + count += 1 + m.Upgrade = true + log.Info("upgrade", m.Hostname, count) + } + if i == -1 || count > i { + return + } + } +} + func (stdw *stdTableWin) refresh() { if stdw.outOfDate.Checked() { log.Info("refresh() showing out of date zoo")