Explorar o código

Allow specifying Url from env

Svilen Markov hai 1 ano
pai
achega
dd5bec799f
Modificáronse 2 ficheiros con 9 adicións e 9 borrados
  1. 1 1
      docs/configuration.md
  2. 8 8
      internal/widget/monitor.go

+ 1 - 1
docs/configuration.md

@@ -694,7 +694,7 @@ The title used to indicate the site.
 
 `url`
 
-The URL which will be requested and its response will determine the status of the site.
+The URL which will be requested and its response will determine the status of the site. Optionally, you can specify this using an environment variable with the syntax `${VARIABLE_NAME}`.
 
 `icon`
 

+ 8 - 8
internal/widget/monitor.go

@@ -46,13 +46,13 @@ func statusCodeToStyle(status int) string {
 type Monitor struct {
 	widgetBase `yaml:",inline"`
 	Sites      []struct {
-		Title       string           `yaml:"title"`
-		Url         string           `yaml:"url"`
-		IconUrl     string           `yaml:"icon"`
-		SameTab     bool             `yaml:"same-tab"`
-		Status      *feed.SiteStatus `yaml:"-"`
-		StatusText  string           `yaml:"-"`
-		StatusStyle string           `yaml:"-"`
+		Title       string            `yaml:"title"`
+		Url         OptionalEnvString `yaml:"url"`
+		IconUrl     string            `yaml:"icon"`
+		SameTab     bool              `yaml:"same-tab"`
+		Status      *feed.SiteStatus  `yaml:"-"`
+		StatusText  string            `yaml:"-"`
+		StatusStyle string            `yaml:"-"`
 	} `yaml:"sites"`
 }
 
@@ -66,7 +66,7 @@ func (widget *Monitor) Update(ctx context.Context) {
 	requests := make([]*http.Request, len(widget.Sites))
 
 	for i := range widget.Sites {
-		request, err := http.NewRequest("GET", widget.Sites[i].Url, nil)
+		request, err := http.NewRequest("GET", string(widget.Sites[i].Url), nil)
 
 		if err != nil {
 			message := fmt.Errorf("failed to create http request for %s: %s", widget.Sites[i].Url, err)