1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

Reduce the exposer of some of the main-level global variables

This commit is contained in:
Chris Cummer 2018-07-26 17:33:12 -07:00
parent e5214ec54b
commit c705297805

91
wtf.go
View File

@ -49,9 +49,10 @@ import (
"github.com/senorprogrammer/wtf/zendesk" "github.com/senorprogrammer/wtf/zendesk"
) )
var focusTracker wtf.FocusTracker
var widgets []wtf.Wtfable
var Config *config.Config var Config *config.Config
var FocusTracker wtf.FocusTracker
var Widgets []wtf.Wtfable
var ( var (
commit = "dev" commit = "dev"
@ -62,16 +63,16 @@ var (
/* -------------------- Functions -------------------- */ /* -------------------- Functions -------------------- */
func disableAllWidgets() { func disableAllWidgets() {
for _, widget := range Widgets { for _, widget := range widgets {
widget.Disable() widget.Disable()
} }
} }
func initializeFocusTracker(app *tview.Application) { func initializeFocusTracker(app *tview.Application) {
FocusTracker = wtf.FocusTracker{ focusTracker = wtf.FocusTracker{
App: app, App: app,
Idx: -1, Idx: -1,
Widgets: Widgets, Widgets: widgets,
} }
} }
@ -80,11 +81,11 @@ func keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
case tcell.KeyCtrlR: case tcell.KeyCtrlR:
refreshAllWidgets() refreshAllWidgets()
case tcell.KeyTab: case tcell.KeyTab:
FocusTracker.Next() focusTracker.Next()
case tcell.KeyBacktab: case tcell.KeyBacktab:
FocusTracker.Prev() focusTracker.Prev()
case tcell.KeyEsc: case tcell.KeyEsc:
FocusTracker.None() focusTracker.None()
default: default:
return event return event
} }
@ -117,7 +118,7 @@ func redrawApp(app *tview.Application) {
} }
func refreshAllWidgets() { func refreshAllWidgets() {
for _, widget := range Widgets { for _, widget := range widgets {
go widget.Refresh() go widget.Refresh()
} }
} }
@ -139,10 +140,10 @@ func watchForConfigChanges(app *tview.Application, configFilePath string, grid *
loadConfigFile(configFilePath) loadConfigFile(configFilePath)
// Disable all widgets to stop scheduler goroutines and rmeove widgets from memory. // Disable all widgets to stop scheduler goroutines and rmeove widgets from memory.
disableAllWidgets() disableAllWidgets()
Widgets = nil widgets = nil
makeWidgets(app, pages) makeWidgets(app, pages)
initializeFocusTracker(app) initializeFocusTracker(app)
display := wtf.NewDisplay(Widgets) display := wtf.NewDisplay(widgets)
pages.AddPage("grid", display.Grid, true, true) pages.AddPage("grid", display.Grid, true, true)
case err := <-watch.Error: case err := <-watch.Error:
log.Fatalln(err) log.Fatalln(err)
@ -167,71 +168,71 @@ func addWidget(app *tview.Application, pages *tview.Pages, widgetName string) {
// Always in alphabetical order // Always in alphabetical order
switch widgetName { switch widgetName {
case "bamboohr": case "bamboohr":
Widgets = append(Widgets, bamboohr.NewWidget()) widgets = append(widgets, bamboohr.NewWidget())
case "bargraph": case "bargraph":
Widgets = append(Widgets, bargraph.NewWidget()) widgets = append(widgets, bargraph.NewWidget())
case "bittrex": case "bittrex":
Widgets = append(Widgets, bittrex.NewWidget()) widgets = append(widgets, bittrex.NewWidget())
case "blockfolio": case "blockfolio":
Widgets = append(Widgets, blockfolio.NewWidget(app, pages)) widgets = append(widgets, blockfolio.NewWidget(app, pages))
case "circleci": case "circleci":
Widgets = append(Widgets, circleci.NewWidget()) widgets = append(widgets, circleci.NewWidget())
case "clocks": case "clocks":
Widgets = append(Widgets, clocks.NewWidget()) widgets = append(widgets, clocks.NewWidget())
case "cmdrunner": case "cmdrunner":
Widgets = append(Widgets, cmdrunner.NewWidget()) widgets = append(widgets, cmdrunner.NewWidget())
case "cryptolive": case "cryptolive":
Widgets = append(Widgets, cryptolive.NewWidget()) widgets = append(widgets, cryptolive.NewWidget())
case "gcal": case "gcal":
Widgets = append(Widgets, gcal.NewWidget()) widgets = append(widgets, gcal.NewWidget())
case "gerrit": case "gerrit":
Widgets = append(Widgets, gerrit.NewWidget(app, pages)) widgets = append(widgets, gerrit.NewWidget(app, pages))
case "git": case "git":
Widgets = append(Widgets, git.NewWidget(app, pages)) widgets = append(widgets, git.NewWidget(app, pages))
case "github": case "github":
Widgets = append(Widgets, github.NewWidget(app, pages)) widgets = append(widgets, github.NewWidget(app, pages))
case "gitlab": case "gitlab":
Widgets = append(Widgets, gitlab.NewWidget(app, pages)) widgets = append(widgets, gitlab.NewWidget(app, pages))
case "gspreadsheets": case "gspreadsheets":
Widgets = append(Widgets, gspreadsheets.NewWidget()) widgets = append(widgets, gspreadsheets.NewWidget())
case "ipapi": case "ipapi":
Widgets = append(Widgets, ipapi.NewWidget()) widgets = append(widgets, ipapi.NewWidget())
case "ipinfo": case "ipinfo":
Widgets = append(Widgets, ipinfo.NewWidget()) widgets = append(widgets, ipinfo.NewWidget())
case "jenkins": case "jenkins":
Widgets = append(Widgets, jenkins.NewWidget()) widgets = append(widgets, jenkins.NewWidget())
case "jira": case "jira":
Widgets = append(Widgets, jira.NewWidget()) widgets = append(widgets, jira.NewWidget())
case "logger": case "logger":
Widgets = append(Widgets, logger.NewWidget()) widgets = append(widgets, logger.NewWidget())
case "newrelic": case "newrelic":
Widgets = append(Widgets, newrelic.NewWidget()) widgets = append(widgets, newrelic.NewWidget())
case "opsgenie": case "opsgenie":
Widgets = append(Widgets, opsgenie.NewWidget()) widgets = append(widgets, opsgenie.NewWidget())
case "power": case "power":
Widgets = append(Widgets, power.NewWidget()) widgets = append(widgets, power.NewWidget())
case "prettyweather": case "prettyweather":
Widgets = append(Widgets, prettyweather.NewWidget()) widgets = append(widgets, prettyweather.NewWidget())
case "security": case "security":
Widgets = append(Widgets, security.NewWidget()) widgets = append(widgets, security.NewWidget())
case "status": case "status":
Widgets = append(Widgets, status.NewWidget()) widgets = append(widgets, status.NewWidget())
case "system": case "system":
Widgets = append(Widgets, system.NewWidget(date, version)) widgets = append(widgets, system.NewWidget(date, version))
case "textfile": case "textfile":
Widgets = append(Widgets, textfile.NewWidget(app, pages)) widgets = append(widgets, textfile.NewWidget(app, pages))
case "todo": case "todo":
Widgets = append(Widgets, todo.NewWidget(app, pages)) widgets = append(widgets, todo.NewWidget(app, pages))
case "todoist": case "todoist":
Widgets = append(Widgets, todoist.NewWidget(app, pages)) widgets = append(widgets, todoist.NewWidget(app, pages))
case "travisci": case "travisci":
Widgets = append(Widgets, travisci.NewWidget()) widgets = append(widgets, travisci.NewWidget())
case "trello": case "trello":
Widgets = append(Widgets, trello.NewWidget()) widgets = append(widgets, trello.NewWidget())
case "weather": case "weather":
Widgets = append(Widgets, weather.NewWidget(app, pages)) widgets = append(widgets, weather.NewWidget(app, pages))
case "zendesk": case "zendesk":
Widgets = append(Widgets, zendesk.NewWidget()) widgets = append(widgets, zendesk.NewWidget())
default: default:
} }
} }
@ -272,7 +273,7 @@ func main() {
makeWidgets(app, pages) makeWidgets(app, pages)
initializeFocusTracker(app) initializeFocusTracker(app)
display := wtf.NewDisplay(Widgets) display := wtf.NewDisplay(widgets)
pages.AddPage("grid", display.Grid, true, true) pages.AddPage("grid", display.Grid, true, true)
app.SetInputCapture(keyboardIntercept) app.SetInputCapture(keyboardIntercept)