From 5fb48d03d43409542a9260255c74bc6b265e8319 Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 17 Feb 2023 18:03:48 +0100 Subject: [PATCH] chore: enable full ENV support and remove --sqlite option (#6286) --- Makefile | 3 +-- cmd/flags.go | 3 --- cmd/root.go | 4 +--- cmd/setup.go | 8 ++------ docker/bin/entrypoint.sh | 8 ++++---- packaging/init/evcc.service | 3 ++- 6 files changed, 10 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index c018d14a7..e5c2d1e1f 100644 --- a/Makefile +++ b/Makefile @@ -111,10 +111,9 @@ gokrazy:: go install github.com/gokrazy/tools/cmd/gokr-packer@main mkdir -p flags/github.com/gokrazy/breakglass echo "-forward=private-network" > flags/github.com/gokrazy/breakglass/flags.txt - mkdir -p flags/github.com/evcc-io/evcc - echo "--sqlite=/perm/evcc.db" > flags/github.com/evcc-io/evcc/flags.txt mkdir -p env/github.com/evcc-io/evcc echo "EVCC_NETWORK_PORT=80" > env/github.com/evcc-io/evcc/env.txt + echo "EVCC_DATABASE_DSN=/perm/evcc.db" >> env/github.com/evcc-io/evcc/env.txt mkdir -p buildflags/github.com/evcc-io/evcc echo "$(BUILD_TAGS),gokrazy" > buildflags/github.com/evcc-io/evcc/buildflags.txt echo "-ldflags=$(LD_FLAGS)" >> buildflags/github.com/evcc-io/evcc/buildflags.txt diff --git a/cmd/flags.go b/cmd/flags.go index 6a795d9bc..3f9066b71 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -8,9 +8,6 @@ import ( ) const ( - flagSqlite = "sqlite" - flagSqliteDescription = "SQlite database file" - flagHeaders = "log-headers" flagHeadersDescription = "Log headers" diff --git a/cmd/root.go b/cmd/root.go index 3d95be8d7..8a89f010f 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -57,9 +57,6 @@ func init() { rootCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) // config file options - rootCmd.PersistentFlags().String(flagSqlite, conf.Database.Dsn, flagSqliteDescription) - bindP(rootCmd, "database.dsn", flagSqlite) - rootCmd.PersistentFlags().StringP("log", "l", "info", "Log level (fatal, error, warn, info, debug, trace)") bindP(rootCmd, "log") @@ -89,6 +86,7 @@ func initConfig() { } viper.SetEnvPrefix("evcc") + viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) viper.AutomaticEnv() // read in environment variables that match // print version diff --git a/cmd/setup.go b/cmd/setup.go index 36782e017..828542c13 100644 --- a/cmd/setup.go +++ b/cmd/setup.go @@ -72,8 +72,8 @@ func configureEnvironment(cmd *cobra.Command, conf config) (err error) { } // setup sponsorship (allow env override) - if token := viper.GetString("sponsortoken"); err == nil && token != "" { - err = sponsor.ConfigureSponsorship(token) + if err == nil && conf.SponsorToken != "" { + err = sponsor.ConfigureSponsorship(conf.SponsorToken) } // setup translations @@ -83,10 +83,6 @@ func configureEnvironment(cmd *cobra.Command, conf config) (err error) { // setup persistence if err == nil && conf.Database.Dsn != "" { - if flag := cmd.Flags().Lookup(flagSqlite); flag != nil && flag.Changed { - conf.Database.Type = "sqlite" - conf.Database.Dsn = flag.Value.String() - } err = configureDatabase(conf.Database) } diff --git a/docker/bin/entrypoint.sh b/docker/bin/entrypoint.sh index 280929f31..8f537ec09 100755 --- a/docker/bin/entrypoint.sh +++ b/docker/bin/entrypoint.sh @@ -7,16 +7,16 @@ HASSIO_OPTIONSFILE=/data/options.json if [ -f ${HASSIO_OPTIONSFILE} ]; then CONFIG=$(grep -o '"config_file": "[^"]*' ${HASSIO_OPTIONSFILE} | grep -o '[^"]*$') echo "Using config file: ${CONFIG}" - + SQLITE_FILE=$(grep -o '"sqlite_file": "[^"]*' ${HASSIO_OPTIONSFILE} | grep -o '[^"]*$') - + if [ ! -f "${CONFIG}" ]; then echo "Config not found. Please create a config under ${CONFIG}." echo "For details see evcc documentation at https://github.com/evcc-io/evcc#readme." else if [ "${SQLITE_FILE}" ]; then - echo "starting evcc: 'evcc --config ${CONFIG} --sqlite ${SQLITE_FILE}'" - exec evcc --config "${CONFIG}" --sqlite "${SQLITE_FILE}" + echo "starting evcc: 'EVCC_DATABASE_DSN=${SQLITE_FILE} evcc --config ${CONFIG}'" + exec EVCC_DATABASE_DSN="${SQLITE_FILE}" evcc --config "${CONFIG}" else echo "starting evcc: 'evcc --config ${CONFIG}'" exec evcc --config "${CONFIG}" diff --git a/packaging/init/evcc.service b/packaging/init/evcc.service index 2b957fdea..8cd7735e3 100644 --- a/packaging/init/evcc.service +++ b/packaging/init/evcc.service @@ -10,7 +10,8 @@ StartLimitIntervalSec=10 StartLimitBurst=10 [Service] -ExecStart=/usr/bin/evcc --sqlite /var/lib/evcc/evcc.db +ExecStart=/usr/bin/evcc +Environment="EVCC_DATABASE_DSN=/var/lib/evcc/evcc.db" Restart=always RestartSec=10