diff --git a/main.go b/main.go index e78b430a..a6e5dd53 100644 --- a/main.go +++ b/main.go @@ -191,7 +191,8 @@ func makeWidget(app *tview.Application, pages *tview.Pages, widgetName string) w case "blockfolio": widget = blockfolio.NewWidget(app) case "circleci": - widget = circleci.NewWidget(app) + cfg := circleci.NewSettingsFromYAML(wtf.Config) + widget = circleci.NewWidget(app, cfg) case "clocks": widget = clocks.NewWidget(app) case "cmdrunner": diff --git a/modules/circleci/settings.go b/modules/circleci/settings.go new file mode 100644 index 00000000..b9cb9849 --- /dev/null +++ b/modules/circleci/settings.go @@ -0,0 +1,25 @@ +package circleci + +import ( + "os" + + "github.com/olebedev/config" + "github.com/wtfutil/wtf/cfg" +) + +type Settings struct { + Common *cfg.Common + + APIKey string +} + +func NewSettingsFromYAML(ymlConfig *config.Config) *Settings { + localConfig, _ := ymlConfig.Get("wtf.mods.circleci") + + settings := Settings{ + Common: cfg.NewCommonSettingsFromYAML(ymlConfig), + APIKey: localConfig.UString("apiKey", os.Getenv("WTF_CIRCLE_API_KEY")), + } + + return &settings +} diff --git a/modules/circleci/widget.go b/modules/circleci/widget.go index 7806d074..66b429c2 100644 --- a/modules/circleci/widget.go +++ b/modules/circleci/widget.go @@ -2,7 +2,7 @@ package circleci import ( "fmt" - "os" + // "os" "github.com/rivo/tview" "github.com/wtfutil/wtf/wtf" @@ -11,19 +11,16 @@ import ( type Widget struct { wtf.TextWidget *Client + + settings *Settings } -const apiEnvKey = "WTF_CIRCLE_API_KEY" - -func NewWidget(app *tview.Application) *Widget { - apiKey := wtf.Config.UString( - "wtf.mods.circleci.apiKey", - os.Getenv(apiEnvKey), - ) - +func NewWidget(app *tview.Application, settings *Settings) *Widget { widget := Widget{ TextWidget: wtf.NewTextWidget(app, "CircleCI", "circleci", false), - Client: NewClient(apiKey), + Client: NewClient(settings.APIKey), + + settings: settings, } return &widget