diff --git a/main.go b/main.go index 031b7643..43544ae8 100644 --- a/main.go +++ b/main.go @@ -235,7 +235,8 @@ func makeWidget(app *tview.Application, pages *tview.Pages, widgetName string) w settings := ipapi.NewSettingsFromYAML(wtf.Config) widget = ipapi.NewWidget(app, settings) case "ipinfo": - widget = ipinfo.NewWidget(app) + settings := ipinfo.NewSettingsFromYAML(wtf.Config) + widget = ipinfo.NewWidget(app, settings) case "jenkins": widget = jenkins.NewWidget(app, pages) case "jira": diff --git a/modules/ipaddresses/ipinfo/settings.go b/modules/ipaddresses/ipinfo/settings.go new file mode 100644 index 00000000..445bc2ca --- /dev/null +++ b/modules/ipaddresses/ipinfo/settings.go @@ -0,0 +1,29 @@ +package ipinfo + +import ( + "github.com/olebedev/config" + "github.com/wtfutil/wtf/cfg" +) + +type colors struct { + name string + value string +} + +type Settings struct { + colors + common *cfg.Common +} + +func NewSettingsFromYAML(ymlConfig *config.Config) *Settings { + localConfig, _ := ymlConfig.Get("wtf.mods.ipinfo") + + settings := Settings{ + common: cfg.NewCommonSettingsFromYAML(ymlConfig), + } + + settings.colors.name = localConfig.UString("colors.name", "red") + settings.colors.value = localConfig.UString("colors.value", "white") + + return &settings +} diff --git a/modules/ipaddresses/ipinfo/widget.go b/modules/ipaddresses/ipinfo/widget.go index 7ee92a4b..6d9135b6 100644 --- a/modules/ipaddresses/ipinfo/widget.go +++ b/modules/ipaddresses/ipinfo/widget.go @@ -13,10 +13,9 @@ import ( type Widget struct { wtf.TextWidget - result string - colors struct { - name, value string - } + + result string + settings *Settings } type ipinfo struct { @@ -30,15 +29,15 @@ type ipinfo struct { Organization string `json:"org"` } -func NewWidget(app *tview.Application) *Widget { +func NewWidget(app *tview.Application, settings *Settings) *Widget { widget := Widget{ TextWidget: wtf.NewTextWidget(app, "IPInfo", "ipinfo", false), + + settings: settings, } widget.View.SetWrap(false) - widget.config() - return &widget } @@ -75,12 +74,6 @@ func (widget *Widget) ipinfo() { widget.setResult(&info) } -// read module configs -func (widget *Widget) config() { - widget.colors.name = wtf.Config.UString("wtf.mods.ipinfo.colors.name", "white") - widget.colors.value = wtf.Config.UString("wtf.mods.ipinfo.colors.value", "white") -} - func (widget *Widget) setResult(info *ipinfo) { resultTemplate, _ := template.New("ipinfo_result").Parse( formatableText("IP", "Ip") + @@ -95,8 +88,8 @@ func (widget *Widget) setResult(info *ipinfo) { resultBuffer := new(bytes.Buffer) resultTemplate.Execute(resultBuffer, map[string]string{ - "nameColor": widget.colors.name, - "valueColor": widget.colors.value, + "nameColor": widget.settings.colors.name, + "valueColor": widget.settings.colors.value, "Ip": info.Ip, "Hostname": info.Hostname, "City": info.City,