From c6f74f2c54a6152fb0c6db853dc2c0185bcba4b1 Mon Sep 17 00:00:00 2001 From: MaxJa4 <74194322+MaxJa4@users.noreply.github.com> Date: Mon, 28 Aug 2023 21:48:30 +0200 Subject: [PATCH] Use our fork of envconfig with custom lookup --- cmd/backup/script.go | 14 +++++++++++++- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/backup/script.go b/cmd/backup/script.go index 5a455c3..cf21b5c 100644 --- a/cmd/backup/script.go +++ b/cmd/backup/script.go @@ -35,8 +35,8 @@ import ( "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" - "github.com/kelseyhightower/envconfig" "github.com/leekchan/timeutil" + "github.com/offen/envconfig" "github.com/otiai10/copy" "golang.org/x/sync/errgroup" ) @@ -89,6 +89,18 @@ func newScript() (*script, error) { return nil }) + envconfig.Lookup = func(key string) (string, bool) { + location, ok := os.LookupEnv(key + "_FILE") + if ok { + contents, err := os.ReadFile(location) + if err != nil { + s.logger.Warn(fmt.Sprintf("Failed to read %s! Falling back to %s", location, key)) + return os.LookupEnv(key) + } + return string(contents), true + } + return os.LookupEnv(key) + } if err := envconfig.Process("", s.c); err != nil { return nil, fmt.Errorf("newScript: failed to process configuration values: %w", err) } diff --git a/go.mod b/go.mod index 08d739e..8c7d52e 100644 --- a/go.mod +++ b/go.mod @@ -9,10 +9,10 @@ require ( github.com/cosiner/argv v0.1.0 github.com/docker/docker v24.0.5+incompatible github.com/gofrs/flock v0.8.1 - github.com/kelseyhightower/envconfig v1.4.0 github.com/klauspost/compress v1.16.7 github.com/leekchan/timeutil v0.0.0-20150802142658-28917288c48d github.com/minio/minio-go/v7 v7.0.62 + github.com/offen/envconfig v0.0.0-20230828194126-86e2e5b19ff0 github.com/otiai10/copy v1.11.0 github.com/pkg/sftp v1.13.6 github.com/studio-b12/gowebdav v0.9.0 diff --git a/go.sum b/go.sum index b66a019..e2dbf19 100644 --- a/go.sum +++ b/go.sum @@ -451,8 +451,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= -github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= @@ -527,6 +525,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/offen/envconfig v0.0.0-20230828194126-86e2e5b19ff0 h1:lyecHMaGJ8jApWaUSX//XRNrBISV4zvcpf0BvrLWl/g= +github.com/offen/envconfig v0.0.0-20230828194126-86e2e5b19ff0/go.mod h1:L7ny7R+4JWH3VVnZ+ARHvZysWUiZ2eQcm3L0imU9ACY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=