Print available environment variables in help message

This commit is contained in:
Dan Sosedoff 2022-11-22 16:09:01 -06:00
parent ee6898f243
commit e1aa717b22
No known key found for this signature in database
GPG Key ID: 26186197D282B164
2 changed files with 19 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,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")
}