mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Merge pull request #62 from jeangovil/i60
Closes #60. No more loading unused modules into memory
This commit is contained in:
commit
295e2f2099
76
wtf.go
76
wtf.go
@ -155,7 +155,56 @@ var (
|
|||||||
version = "dev"
|
version = "dev"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func addWidget(app *tview.Application, pages *tview.Pages, widgetName string) {
|
||||||
|
// Always in alphabetical order
|
||||||
|
switch widgetName {
|
||||||
|
case "bamboohr":
|
||||||
|
Widgets = append(Widgets, bamboohr.NewWidget())
|
||||||
|
case "bittrex":
|
||||||
|
Widgets = append(Widgets, bittrex.NewWidget())
|
||||||
|
case "clocks":
|
||||||
|
Widgets = append(Widgets, clocks.NewWidget())
|
||||||
|
case "cmdrunner":
|
||||||
|
Widgets = append(Widgets, cmdrunner.NewWidget())
|
||||||
|
case "cryptolive":
|
||||||
|
Widgets = append(Widgets, cryptolive.NewWidget())
|
||||||
|
case "gcal":
|
||||||
|
Widgets = append(Widgets, gcal.NewWidget())
|
||||||
|
case "git":
|
||||||
|
Widgets = append(Widgets, git.NewWidget(app, pages))
|
||||||
|
case "github":
|
||||||
|
Widgets = append(Widgets, github.NewWidget(app, pages))
|
||||||
|
case "ipinfo":
|
||||||
|
Widgets = append(Widgets, ipinfo.NewWidget())
|
||||||
|
case "jira":
|
||||||
|
Widgets = append(Widgets, jira.NewWidget())
|
||||||
|
case "newrelic":
|
||||||
|
Widgets = append(Widgets, newrelic.NewWidget())
|
||||||
|
case "opsgenie":
|
||||||
|
Widgets = append(Widgets, opsgenie.NewWidget())
|
||||||
|
case "power":
|
||||||
|
Widgets = append(Widgets, power.NewWidget())
|
||||||
|
case "prettyweather":
|
||||||
|
Widgets = append(Widgets, prettyweather.NewWidget())
|
||||||
|
case "security":
|
||||||
|
Widgets = append(Widgets, security.NewWidget())
|
||||||
|
case "status":
|
||||||
|
Widgets = append(Widgets, status.NewWidget())
|
||||||
|
case "system":
|
||||||
|
Widgets = append(Widgets, system.NewWidget(date, version))
|
||||||
|
case "textfile":
|
||||||
|
Widgets = append(Widgets, textfile.NewWidget(app, pages))
|
||||||
|
case "todo":
|
||||||
|
Widgets = append(Widgets, todo.NewWidget(app, pages))
|
||||||
|
case "weather":
|
||||||
|
Widgets = append(Widgets, weather.NewWidget(app, pages))
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func makeWidgets(app *tview.Application, pages *tview.Pages) {
|
func makeWidgets(app *tview.Application, pages *tview.Pages) {
|
||||||
|
Widgets = []wtf.Wtfable{}
|
||||||
|
|
||||||
// Always in alphabetical order
|
// Always in alphabetical order
|
||||||
bamboohr.Config = Config
|
bamboohr.Config = Config
|
||||||
bittrex.Config = Config
|
bittrex.Config = Config
|
||||||
@ -179,28 +228,11 @@ func makeWidgets(app *tview.Application, pages *tview.Pages) {
|
|||||||
weather.Config = Config
|
weather.Config = Config
|
||||||
wtf.Config = Config
|
wtf.Config = Config
|
||||||
|
|
||||||
// Always in alphabetical order
|
mods, _ := Config.Map("wtf.mods")
|
||||||
Widgets = []wtf.Wtfable{
|
for mod := range mods {
|
||||||
bamboohr.NewWidget(),
|
if enabled, _ := Config.Bool("wtf.mods." + mod + ".enabled"); enabled {
|
||||||
bittrex.NewWidget(),
|
addWidget(app, pages, mod)
|
||||||
clocks.NewWidget(),
|
}
|
||||||
cmdrunner.NewWidget(),
|
|
||||||
cryptolive.NewWidget(),
|
|
||||||
gcal.NewWidget(),
|
|
||||||
git.NewWidget(app, pages),
|
|
||||||
github.NewWidget(app, pages),
|
|
||||||
ipinfo.NewWidget(),
|
|
||||||
jira.NewWidget(),
|
|
||||||
newrelic.NewWidget(),
|
|
||||||
opsgenie.NewWidget(),
|
|
||||||
power.NewWidget(),
|
|
||||||
prettyweather.NewWidget(),
|
|
||||||
security.NewWidget(),
|
|
||||||
status.NewWidget(),
|
|
||||||
system.NewWidget(date, version),
|
|
||||||
textfile.NewWidget(app, pages),
|
|
||||||
todo.NewWidget(app, pages),
|
|
||||||
weather.NewWidget(app, pages),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FocusTracker = wtf.FocusTracker{
|
FocusTracker = wtf.FocusTracker{
|
||||||
|
@ -9,7 +9,7 @@ type Scheduler interface {
|
|||||||
RefreshInterval() int
|
RefreshInterval() int
|
||||||
}
|
}
|
||||||
|
|
||||||
func Schedule(widget Scheduler) {
|
func Schedule(widget Wtfable) {
|
||||||
// Kick off the first refresh and then leave the rest to the timer
|
// Kick off the first refresh and then leave the rest to the timer
|
||||||
widget.Refresh()
|
widget.Refresh()
|
||||||
|
|
||||||
@ -25,7 +25,12 @@ func Schedule(widget Scheduler) {
|
|||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-tick.C:
|
case <-tick.C:
|
||||||
widget.Refresh()
|
if widget.Enabled() {
|
||||||
|
widget.Refresh()
|
||||||
|
} else {
|
||||||
|
tick.Stop()
|
||||||
|
return
|
||||||
|
}
|
||||||
case <-quit:
|
case <-quit:
|
||||||
tick.Stop()
|
tick.Stop()
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user