Skip to content

Commit 995e198

Browse files
authored
cli: show env vars for the flags in command help (close hasura#4263) (hasura#4326)
1 parent 21b61af commit 995e198

File tree

9 files changed

+71
-36
lines changed

9 files changed

+71
-36
lines changed

cli/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ OUTPUT_DIR := _output
77
# compile assets
88
.PHONY: assets
99
assets:
10+
ifndef HAS_PKGER
11+
go get github.com/markbates/pkger/cmd/pkger
12+
endif
1013
pkger -o pkg/console/templates/packed -include /pkg/console/templates/gohtml/
1114

1215
HAS_GOX := $(shell command -v gox;)
@@ -19,9 +22,6 @@ deps:
1922
ifndef HAS_GOX
2023
go get github.com/mitchellh/gox
2124
endif
22-
ifndef HAS_PKGER
23-
go get github.com/markbates/pkger/cmd/pkger
24-
endif
2525

2626
# build cli locally, for all given platform/arch
2727
.PHONY: build

cli/cli.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,8 +474,8 @@ func (ec *ExecutionContext) WriteConfig(config *Config) error {
474474
func (ec *ExecutionContext) readConfig() error {
475475
// need to get existing viper because https://github.com/spf13/viper/issues/233
476476
v := ec.Viper
477-
v.SetEnvPrefix("HASURA_GRAPHQL")
478-
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
477+
v.SetEnvPrefix(util.ViperEnvPrefix)
478+
v.SetEnvKeyReplacer(util.ViperEnvReplacer)
479479
v.AutomaticEnv()
480480
v.SetConfigName("config")
481481
v.SetDefault("version", "1")

cli/commands/actions.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,16 @@ func NewActionsCmd(ec *cli.ExecutionContext) *cobra.Command {
4646
newActionsUseCodegenCmd(ec),
4747
)
4848

49-
actionsCmd.PersistentFlags().String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
50-
actionsCmd.PersistentFlags().String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
51-
actionsCmd.PersistentFlags().String("access-key", "", "access key for Hasura GraphQL Engine")
52-
actionsCmd.PersistentFlags().MarkDeprecated("access-key", "use --admin-secret instead")
49+
f := actionsCmd.PersistentFlags()
5350

54-
v.BindPFlag("endpoint", actionsCmd.PersistentFlags().Lookup("endpoint"))
55-
v.BindPFlag("admin_secret", actionsCmd.PersistentFlags().Lookup("admin-secret"))
56-
v.BindPFlag("access_key", actionsCmd.PersistentFlags().Lookup("access-key"))
51+
f.String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
52+
f.String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
53+
f.String("access-key", "", "access key for Hasura GraphQL Engine")
54+
f.MarkDeprecated("access-key", "use --admin-secret instead")
55+
56+
util.BindPFlag(v, "endpoint", f.Lookup("endpoint"))
57+
util.BindPFlag(v, "admin_secret", f.Lookup("admin-secret"))
58+
util.BindPFlag(v, "access_key", f.Lookup("access-key"))
5759

5860
return actionsCmd
5961
}

cli/commands/actions_create.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ func newActionsCreateCmd(ec *cli.ExecutionContext, v *viper.Viper) *cobra.Comman
4949
f.String("webhook", "", "webhook to use in action")
5050

5151
// bind to viper
52-
v.BindPFlag("actions.kind", f.Lookup("kind"))
53-
v.BindPFlag("actions.handler_webhook_baseurl", f.Lookup("webhook"))
52+
util.BindPFlag(v, "actions.kind", f.Lookup("kind"))
53+
util.BindPFlag(v, "actions.handler_webhook_baseurl", f.Lookup("webhook"))
5454

5555
return actionsCreateCmd
5656
}

cli/commands/console.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"sync"
66

77
"github.com/hasura/graphql-engine/cli/migrate"
8+
"github.com/hasura/graphql-engine/cli/util"
89

910
"github.com/gin-gonic/gin"
1011
"github.com/hasura/graphql-engine/cli"
@@ -66,9 +67,10 @@ func NewConsoleCmd(ec *cli.ExecutionContext) *cobra.Command {
6667
f.MarkDeprecated("access-key", "use --admin-secret instead")
6768

6869
// need to create a new viper because https://github.com/spf13/viper/issues/233
69-
v.BindPFlag("endpoint", f.Lookup("endpoint"))
70-
v.BindPFlag("admin_secret", f.Lookup("admin-secret"))
71-
v.BindPFlag("access_key", f.Lookup("access-key"))
70+
util.BindPFlag(v, "endpoint", f.Lookup("endpoint"))
71+
util.BindPFlag(v, "admin_secret", f.Lookup("admin-secret"))
72+
util.BindPFlag(v, "access_key", f.Lookup("access-key"))
73+
7274
return consoleCmd
7375
}
7476

@@ -151,7 +153,7 @@ func (o *ConsoleOptions) Run() error {
151153
Address: o.Address,
152154
SignalChanConsoleServer: o.ConsoleServerInterruptSignal,
153155
SignalChanAPIServer: o.APIServerInterruptSignal,
154-
WG: o.WG,
156+
WG: o.WG,
155157
}
156158

157159
return console.Serve(serveOpts)

cli/commands/metadata.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package commands
33
import (
44
"github.com/hasura/graphql-engine/cli"
55
"github.com/hasura/graphql-engine/cli/migrate"
6+
"github.com/hasura/graphql-engine/cli/util"
67
"github.com/pkg/errors"
78
"github.com/spf13/cobra"
89
"github.com/spf13/viper"
@@ -35,14 +36,16 @@ func NewMetadataCmd(ec *cli.ExecutionContext) *cobra.Command {
3536
newMetadataInconsistencyCmd(ec),
3637
)
3738

38-
metadataCmd.PersistentFlags().String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
39-
metadataCmd.PersistentFlags().String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
40-
metadataCmd.PersistentFlags().String("access-key", "", "access key for Hasura GraphQL Engine")
41-
metadataCmd.PersistentFlags().MarkDeprecated("access-key", "use --admin-secret instead")
39+
f := metadataCmd.PersistentFlags()
4240

43-
v.BindPFlag("endpoint", metadataCmd.PersistentFlags().Lookup("endpoint"))
44-
v.BindPFlag("admin_secret", metadataCmd.PersistentFlags().Lookup("admin-secret"))
45-
v.BindPFlag("access_key", metadataCmd.PersistentFlags().Lookup("access-key"))
41+
f.String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
42+
f.String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
43+
f.String("access-key", "", "access key for Hasura GraphQL Engine")
44+
f.MarkDeprecated("access-key", "use --admin-secret instead")
45+
46+
util.BindPFlag(v, "endpoint", f.Lookup("endpoint"))
47+
util.BindPFlag(v, "admin_secret", f.Lookup("admin-secret"))
48+
util.BindPFlag(v, "access_key", f.Lookup("access-key"))
4649

4750
return metadataCmd
4851
}

cli/commands/migrate.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/hasura/graphql-engine/cli"
77
"github.com/hasura/graphql-engine/cli/migrate"
88
mig "github.com/hasura/graphql-engine/cli/migrate/cmd"
9+
"github.com/hasura/graphql-engine/cli/util"
910
"github.com/spf13/cobra"
1011
"github.com/spf13/viper"
1112

@@ -37,14 +38,18 @@ func NewMigrateCmd(ec *cli.ExecutionContext) *cobra.Command {
3738
newMigrateCreateCmd(ec),
3839
newMigrateSquashCmd(ec),
3940
)
40-
migrateCmd.PersistentFlags().String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
41-
migrateCmd.PersistentFlags().String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
42-
migrateCmd.PersistentFlags().String("access-key", "", "access key for Hasura GraphQL Engine")
43-
migrateCmd.PersistentFlags().MarkDeprecated("access-key", "use --admin-secret instead")
4441

45-
v.BindPFlag("endpoint", migrateCmd.PersistentFlags().Lookup("endpoint"))
46-
v.BindPFlag("admin_secret", migrateCmd.PersistentFlags().Lookup("admin-secret"))
47-
v.BindPFlag("access_key", migrateCmd.PersistentFlags().Lookup("access-key"))
42+
f := migrateCmd.PersistentFlags()
43+
44+
f.String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
45+
f.String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
46+
f.String("access-key", "", "access key for Hasura GraphQL Engine")
47+
f.MarkDeprecated("access-key", "use --admin-secret instead")
48+
49+
util.BindPFlag(v, "endpoint", f.Lookup("endpoint"))
50+
util.BindPFlag(v, "admin_secret", f.Lookup("admin-secret"))
51+
util.BindPFlag(v, "access_key", f.Lookup("access-key"))
52+
4853
return migrateCmd
4954
}
5055

cli/commands/scripts_update_config_v2.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -347,17 +347,17 @@ func newScriptsUpdateConfigV2Cmd(ec *cli.ExecutionContext) *cobra.Command {
347347
}
348348

349349
f := scriptsUpdateConfigV2Cmd.Flags()
350-
f.StringVar(&metadataDir, "metadata-dir", "metadata", "")
351350

351+
f.StringVar(&metadataDir, "metadata-dir", "metadata", "")
352352
f.String("endpoint", "", "http(s) endpoint for Hasura GraphQL Engine")
353353
f.String("admin-secret", "", "admin secret for Hasura GraphQL Engine")
354354
f.String("access-key", "", "access key for Hasura GraphQL Engine")
355355
f.MarkDeprecated("access-key", "use --admin-secret instead")
356356

357357
// need to create a new viper because https://github.com/spf13/viper/issues/233
358-
v.BindPFlag("endpoint", f.Lookup("endpoint"))
359-
v.BindPFlag("admin_secret", f.Lookup("admin-secret"))
360-
v.BindPFlag("access_key", f.Lookup("access-key"))
358+
util.BindPFlag(v, "endpoint", f.Lookup("endpoint"))
359+
util.BindPFlag(v, "admin_secret", f.Lookup("admin-secret"))
360+
util.BindPFlag(v, "access_key", f.Lookup("access-key"))
361361

362362
return scriptsUpdateConfigV2Cmd
363363
}

cli/util/viper.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package util
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
7+
"github.com/spf13/pflag"
8+
"github.com/spf13/viper"
9+
)
10+
11+
// ViperEnvPrefix - Env prefix to be used in viper
12+
const ViperEnvPrefix = "HASURA_GRAPHQL"
13+
14+
// ViperEnvReplacer - Env replacer to be used in viper
15+
var ViperEnvReplacer = strings.NewReplacer(".", "_")
16+
17+
// BindPFlag - binds flag with viper along with env usage
18+
func BindPFlag(v *viper.Viper, key string, f *pflag.Flag) {
19+
v.BindPFlag(key, f)
20+
key = ViperEnvReplacer.Replace(key)
21+
key = strings.ToUpper(ViperEnvPrefix + "_" + key)
22+
f.Usage = f.Usage + fmt.Sprintf(` (env "%s")`, key)
23+
}

0 commit comments

Comments
 (0)