From e2200917eaa602b930063a274b42d1b805559f95 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 4 Dec 2022 13:05:01 +0100 Subject: [PATCH] Add .env support and allow overriding config with environment settings --- cmd/root.go | 4 +++- cmd/setup.go | 6 +++--- go.mod | 1 + go.sum | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index c825d6add..b1d2bedf3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -21,8 +21,9 @@ import ( "github.com/evcc-io/evcc/util/pipe" "github.com/evcc-io/evcc/util/sponsor" "github.com/evcc-io/evcc/util/telemetry" - "github.com/prometheus/client_golang/prometheus/promhttp" + _ "github.com/joho/godotenv/autoload" + "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -86,6 +87,7 @@ func initConfig() { viper.SetConfigName("evcc") } + viper.SetEnvPrefix("evcc") viper.AutomaticEnv() // read in environment variables that match // print version diff --git a/cmd/setup.go b/cmd/setup.go index 5e71a1c99..92cc4afa1 100644 --- a/cmd/setup.go +++ b/cmd/setup.go @@ -68,9 +68,9 @@ func configureEnvironment(cmd *cobra.Command, conf config) (err error) { err = machine.CustomID(conf.Plant) } - // setup sponsorship - if err == nil && conf.SponsorToken != "" { - err = sponsor.ConfigureSponsorship(conf.SponsorToken) + // setup sponsorship (allow env override) + if token := viper.GetString("sponsortoken"); err == nil && token != "" { + err = sponsor.ConfigureSponsorship(token) } // setup translations diff --git a/go.mod b/go.mod index 3882d1561..e340ce22d 100644 --- a/go.mod +++ b/go.mod @@ -51,6 +51,7 @@ require ( github.com/jeremywohl/flatten v1.0.1 github.com/jinzhu/copier v0.3.5 github.com/joeshaw/carwings v0.0.0-20220711204617-d90801cf2848 + github.com/joho/godotenv v1.4.0 github.com/jpfielding/go-http-digest v0.0.0-20211006141426-fbc93758452e github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/koron/go-ssdp v0.0.3 diff --git a/go.sum b/go.sum index ef65c4751..898418be3 100644 --- a/go.sum +++ b/go.sum @@ -523,6 +523,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joeshaw/carwings v0.0.0-20220711204617-d90801cf2848 h1:mUoi+B77PKkv/pYCR7uOh5ouZdgzFAwOZ3HU8Jr1P+4= github.com/joeshaw/carwings v0.0.0-20220711204617-d90801cf2848/go.mod h1:tB0OlpicmRVTL1Vksc5XRiYo+wkK2kl/GI7eGMIl6Rs= +github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= +github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpfielding/go-http-digest v0.0.0-20211006141426-fbc93758452e h1:iLmt7czLE9ophoU4xZcckVNCXp+auTvVSQ9MGTWbgBY= github.com/jpfielding/go-http-digest v0.0.0-20211006141426-fbc93758452e/go.mod h1:oLt6zF2euTyCg2Cxz01B3VC5SJcPpKpYnOAqvO+480s=