From ffdde825eccd59804a9917b6625ec0ceb9fa891f Mon Sep 17 00:00:00 2001 From: David Schneider Date: Wed, 21 Feb 2024 13:26:51 +0100 Subject: [PATCH] fix(backend): respect start flags in all commands (#6621) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(backend): respect start flags in all commands Currently flags like --externalDomain do only work in the last registered command which currently is start-from-setup. This creates the flags globally in the init function in uses them for all start commands. * fix(backend): remove viper defaults in start flags At this point viper is not yet initialized so this defaults would have not effect either. * Remove flag name variables and run go mod tidy --------- Co-authored-by: Tim Möhlmann --- cmd/start/flags.go | 35 ++++++++++++++++------------------- go.mod | 2 +- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/cmd/start/flags.go b/cmd/start/flags.go index 9ef6a0f42..91d5b3c82 100644 --- a/cmd/start/flags.go +++ b/cmd/start/flags.go @@ -2,34 +2,31 @@ package start import ( "github.com/spf13/cobra" + "github.com/spf13/pflag" "github.com/spf13/viper" + "github.com/zitadel/logging" + "github.com/zitadel/zitadel/cmd/key" "github.com/zitadel/zitadel/cmd/tls" ) -var tlsMode *string +var ( + startFlagSet = &pflag.FlagSet{} +) + +func init() { + startFlagSet.Uint16("port", 0, "port to run ZITADEL on") + startFlagSet.String("externalDomain", "", "domain ZITADEL will be exposed on") + startFlagSet.String("externalPort", "", "port ZITADEL will be exposed on") +} func startFlags(cmd *cobra.Command) { - bindUint16Flag(cmd, "port", "port to run ZITADEL on") - bindStringFlag(cmd, "externalDomain", "domain ZITADEL will be exposed on") - bindStringFlag(cmd, "externalPort", "port ZITADEL will be exposed on") + cmd.Flags().AddFlagSet(startFlagSet) + logging.OnError( + viper.BindPFlags(startFlagSet), + ).Fatal("start flags") tls.AddTLSModeFlag(cmd) key.AddMasterKeyFlag(cmd) } - -func bindStringFlag(cmd *cobra.Command, name, description string) { - cmd.PersistentFlags().String(name, viper.GetString(name), description) - viper.BindPFlag(name, cmd.PersistentFlags().Lookup(name)) -} - -func bindUint16Flag(cmd *cobra.Command, name, description string) { - cmd.PersistentFlags().Uint16(name, uint16(viper.GetUint(name)), description) - viper.BindPFlag(name, cmd.PersistentFlags().Lookup(name)) -} - -func bindBoolFlag(cmd *cobra.Command, name, description string) { - cmd.PersistentFlags().Bool(name, viper.GetBool(name), description) - viper.BindPFlag(name, cmd.PersistentFlags().Lookup(name)) -} diff --git a/go.mod b/go.mod index bd0a9c082..ba90d777d 100644 --- a/go.mod +++ b/go.mod @@ -194,7 +194,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/pflag v1.0.5 github.com/subosito/gotenv v1.6.0 // indirect github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect github.com/x448/float16 v0.8.4 // indirect