Skip to content

Commit

Permalink
Set settings from environment variables
Browse files Browse the repository at this point in the history
  • Loading branch information
hg committed Feb 14, 2021
1 parent dec5130 commit 537d522
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 0 deletions.
4 changes: 4 additions & 0 deletions gateway/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[*]
indent_style = tab
indent_size = 2

16 changes: 16 additions & 0 deletions gateway/influx/influx.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
influxdb2Api "github.com/influxdata/influxdb-client-go/v2/api"
influxdb2Write "github.com/influxdata/influxdb-client-go/v2/api/write"
"log"
"os"
"time"
)

Expand All @@ -17,6 +18,21 @@ type Settings struct {
Token string
}

func (s *Settings) SetFromEnvironment() {
if s.Uri == "" {
s.Uri = os.Getenv("INFLUX_URI")
}
if s.Org == "" {
s.Org = os.Getenv("INFLUX_ORG")
}
if s.Bucket == "" {
s.Bucket = os.Getenv("INFLUX_BUCKET")
}
if s.Token == "" {
s.Token = os.Getenv("INFLUX_TOKEN")
}
}

func (s *Settings) validate() error {
if s.Uri == "" {
return errors.New("InfluxDB URI not set")
Expand Down
2 changes: 2 additions & 0 deletions gateway/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ func main() {
flag.StringVar(&infs.Token, "influx.token", "", "InfluxDB access token")

flag.Parse()
mqts.SetFromEnvironment()
infs.SetFromEnvironment()

sender, err := influx.NewWriter(infs)
if err != nil {
Expand Down
13 changes: 13 additions & 0 deletions gateway/mqtt/mqtt.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/hg/airmon/mon"
"github.com/pkg/errors"
"log"
"os"
"strings"
)

Expand All @@ -15,6 +16,18 @@ type Settings struct {
Pass string
}

func (s *Settings) SetFromEnvironment() {
if s.Broker == "" {
s.Broker = os.Getenv("MQTT_BROKER")
}
if s.User == "" {
s.User = os.Getenv("MQTT_USER")
}
if s.Pass == "" {
s.Pass = os.Getenv("MQTT_PASS")
}
}

func (s *Settings) validate() error {
if s.Broker == "" {
return errors.New("MQTT broker is empty")
Expand Down
3 changes: 3 additions & 0 deletions gateway/settings/settings.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package settings


0 comments on commit 537d522

Please sign in to comment.