From e1aa717b225f5cce74c1744a3ace6a706ec56779 Mon Sep 17 00:00:00 2001 From: Dan Sosedoff Date: Tue, 22 Nov 2022 16:09:01 -0600 Subject: [PATCH 1/2] Print available environment variables in help message --- pkg/cli/cli.go | 6 +++++- pkg/command/options.go | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pkg/cli/cli.go b/pkg/cli/cli.go index d0954ef..c3e140c 100644 --- a/pkg/cli/cli.go +++ b/pkg/cli/cli.go @@ -131,8 +131,12 @@ func initClient() { func initOptions() { opts, err := command.ParseOptions(os.Args) if err != nil { - switch err.(type) { + switch errVal := err.(type) { case *flags.Error: + if errVal.Type == flags.ErrHelp { + fmt.Println("Available environment variables:") + fmt.Println(command.AvailableEnvVars()) + } // no need to print error, flags package already does that default: fmt.Println(err.Error()) diff --git a/pkg/command/options.go b/pkg/command/options.go index 391b91b..259ecae 100644 --- a/pkg/command/options.go +++ b/pkg/command/options.go @@ -157,3 +157,17 @@ func getPrefixedEnvVar(name string) string { } return val } + +// AvailableEnvVars returns list of supported env vars . +// TODO: These should probably embedded into flag parsing logic so we dont have +// to maintain the list manually. +func AvailableEnvVars() string { + return strings.Join([]string{ + " " + envVarPrefix + "DATABASE_URL Database connection string", + " " + envVarPrefix + "URL_PREFIX HTTP server path prefix", + " " + envVarPrefix + "SESSIONS: Enable multiple database sessions", + " " + envVarPrefix + "LOCK_SESSION Lock session to a single database connection", + " " + envVarPrefix + "AUTH_USER HTTP basic auth username", + " " + envVarPrefix + "AUTH_PASS HTTP basic auth password", + }, "\n") +} From c103eed463497a996f5fc9e5cad3a3194082e340 Mon Sep 17 00:00:00 2001 From: Dan Sosedoff Date: Tue, 22 Nov 2022 16:17:28 -0600 Subject: [PATCH 2/2] Comment fixes --- pkg/command/options.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/command/options.go b/pkg/command/options.go index 259ecae..0d45796 100644 --- a/pkg/command/options.go +++ b/pkg/command/options.go @@ -158,8 +158,9 @@ func getPrefixedEnvVar(name string) string { return val } -// AvailableEnvVars returns list of supported env vars . -// TODO: These should probably embedded into flag parsing logic so we dont have +// AvailableEnvVars returns list of supported env vars. +// +// TODO: These should probably be embedded into flag parsing logic so we dont have // to maintain the list manually. func AvailableEnvVars() string { return strings.Join([]string{