From 1404140b82365503a7f8d49501a28efdd228e2e4 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Fri, 6 Apr 2018 21:35:55 -0700 Subject: [PATCH] Faster start by having async initial refresh --- wtf.go | 11 +---------- wtf/scheduler.go | 3 +++ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/wtf.go b/wtf.go index 22d2a8c6..15b97c63 100644 --- a/wtf.go +++ b/wtf.go @@ -41,52 +41,43 @@ func main() { bamboohr.Config = Config bamboo := bamboohr.NewWidget() - bamboo.Refresh() go wtf.Schedule(bamboo) gcal.Config = Config cal := gcal.NewWidget() - cal.Refresh() go wtf.Schedule(cal) git.Config = Config git := git.NewWidget() - git.Refresh() go wtf.Schedule(git) github.Config = Config github := github.NewWidget() - github.Refresh() go wtf.Schedule(github) jira.Config = Config jira := jira.NewWidget() - jira.Refresh() go wtf.Schedule(jira) newrelic.Config = Config newrelic := newrelic.NewWidget() - newrelic.Refresh() go wtf.Schedule(newrelic) opsgenie.Config = Config opsgenie := opsgenie.NewWidget() - opsgenie.Refresh() go wtf.Schedule(opsgenie) security.Config = Config sec := security.NewWidget() - sec.Refresh() go wtf.Schedule(sec) status.Config = Config stat := status.NewWidget() - stat.Refresh() go wtf.Schedule(stat) weather.Config = Config weather := weather.NewWidget() - weather.Refresh() + go wtf.Schedule(weather) grid := tview.NewGrid() grid.SetRows(10, 10, 10, 10, 10, 4) // How _high_ the row is, in terminal rows diff --git a/wtf/scheduler.go b/wtf/scheduler.go index 7520d596..3b6795fc 100644 --- a/wtf/scheduler.go +++ b/wtf/scheduler.go @@ -13,6 +13,9 @@ func Schedule(widget Scheduler) { tick := time.NewTicker(time.Duration(widget.RefreshInterval()) * time.Second) quit := make(chan struct{}) + // Kick off the first refresh and then leave the rest to the timer + widget.Refresh() + for { select { case <-tick.C: