Merge pull request #586 from sosedoff/cli-usage-env-vars

Print available environment variables in help message
This commit is contained in:
Dan Sosedoff 2022-11-22 16:21:29 -06:00 committed by GitHub
commit 84bf1f091b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View File

@ -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())

View File

@ -157,3 +157,18 @@ func getPrefixedEnvVar(name string) string {
}
return val
}
// 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{
" " + 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")
}