Skip to content

Commit 7a82c80

Browse files
committed
make persistent flags also available as environment variables
1 parent 19a19b7 commit 7a82c80

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ Available Commands:
1717
purge Removes old Pads entirely from Etherpad
1818
1919
Flags:
20-
--etherpad.apikey string API Key for Etherpad
21-
--etherpad.url string URL to access Etherpad (default "http://localhost:9001")
20+
--etherpad.apikey string API Key for Etherpad (Env: ETHERPAD_APIKEY)
21+
--etherpad.url string URL to access Etherpad (Env: ETHERPAD_URL) (default "http://localhost:9001")
2222
-h, --help help for etherpad-toolkit
23-
--log.format string Format for log output (default "text")
24-
--log.level string Log level (default "info")
23+
--log.format string Format for log output (Env: LOG_FORMAT) (default "text")
24+
--log.level string Log level (Env: LOG_LEVEL) (default "info")
25+
2526
2627
Use "etherpad-toolkit [command] --help" for more information about a command.
2728
```

cmd/root.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cmd
22

33
import (
4+
"os"
5+
46
log "github.com/sirupsen/logrus"
57
"github.com/spf13/cobra"
68
)
@@ -25,10 +27,30 @@ func NewRootCmd() *cobra.Command {
2527
Long: "Etherpad Toolkit is a collection for most common Etherpad maintenance tasks.",
2628
}
2729

28-
cmd.PersistentFlags().StringVar(&etherpadUrl, "etherpad.url", "http://localhost:9001", "URL to access Etherpad")
29-
cmd.PersistentFlags().StringVar(&etherpadApiKey, "etherpad.apikey", "", "API Key for Etherpad")
30-
cmd.PersistentFlags().StringVar(&logLevel, "log.level", "info", "Log level")
31-
cmd.PersistentFlags().StringVar(&logFormat, "log.format", "text", "Format for log output")
30+
cmd.PersistentFlags().String("etherpad.url", "http://localhost:9001", "URL to access Etherpad (Env: ETHERPAD_URL)")
31+
cmd.PersistentFlags().String("etherpad.apikey", "", "API Key for Etherpad (Env: ETHERPAD_APIKEY)")
32+
cmd.PersistentFlags().String("log.level", "info", "Log level (Env: LOG_LEVEL)")
33+
cmd.PersistentFlags().String("log.format", "text", "Format for log output (Env: LOG_FORMAT)")
34+
35+
etherpadUrl = os.Getenv("ETHERPAD_URL")
36+
if etherpadUrl == "" {
37+
etherpadUrl = cmd.Flag("etherpad.url").Value.String()
38+
}
39+
40+
etherpadApiKey = os.Getenv("ETHERPAD_APIKEY")
41+
if etherpadApiKey == "" {
42+
etherpadApiKey = cmd.Flag("etherpad.apikey").Value.String()
43+
}
44+
45+
logLevel = os.Getenv("LOG_LEVEL")
46+
if logLevel == "" {
47+
logLevel = cmd.Flag("log.level").Value.String()
48+
}
49+
50+
logFormat = os.Getenv("LOG_FORMAT")
51+
if logFormat == "" {
52+
logFormat = cmd.Flag("log.format").Value.String()
53+
}
3254

3355
if logFormat == "json" {
3456
log.SetFormatter(&log.JSONFormatter{})

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ require (
77
github.com/sirupsen/logrus v1.8.1
88
github.com/spf13/cobra v1.1.3
99
github.com/stretchr/testify v1.7.0
10+
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 // indirect
1011
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
1112
)

go.sum

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,9 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w
423423
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
424424
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
425425
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
426-
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2 h1:46ULzRKLh1CwgRq2dC5SlBzEqqNCi8rreOZnNrbqcIY=
427426
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
427+
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E=
428+
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
428429
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
429430
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
430431
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=

0 commit comments

Comments
 (0)