From 6a9103224ac0383e8bf8b1536826640581ef7471 Mon Sep 17 00:00:00 2001 From: andig Date: Tue, 4 Oct 2022 11:27:41 +0200 Subject: [PATCH] Cleanup handling of flags (#4718) --- cmd/charger.go | 25 +++++++++---------------- cmd/charger_ramp.go | 18 +++++------------- cmd/dump.go | 2 +- cmd/meter.go | 9 +-------- cmd/root.go | 8 +------- cmd/setup.go | 9 ++++++++- cmd/vehicle.go | 21 +++++++-------------- 7 files changed, 32 insertions(+), 60 deletions(-) diff --git a/cmd/charger.go b/cmd/charger.go index 1df820ab9..07bffcd7c 100644 --- a/cmd/charger.go +++ b/cmd/charger.go @@ -9,7 +9,6 @@ import ( "github.com/evcc-io/evcc/cmd/shutdown" "github.com/evcc-io/evcc/server" "github.com/evcc-io/evcc/util" - "github.com/evcc-io/evcc/util/request" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -26,13 +25,12 @@ const noCurrent = -1 func init() { rootCmd.AddCommand(chargerCmd) chargerCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "charger")) - chargerCmd.PersistentFlags().IntP(flagCurrent, "I", noCurrent, flagCurrentDescription) + chargerCmd.Flags().IntP(flagCurrent, "I", noCurrent, flagCurrentDescription) //lint:ignore SA1019 as Title is safe on ascii - chargerCmd.PersistentFlags().BoolP(flagEnable, "e", false, strings.Title(flagEnable)) + chargerCmd.Flags().BoolP(flagEnable, "e", false, strings.Title(flagEnable)) //lint:ignore SA1019 as Title is safe on ascii - chargerCmd.PersistentFlags().BoolP(flagDisable, "d", false, strings.Title(flagDisable)) - chargerCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeupDescription) - chargerCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) + chargerCmd.Flags().BoolP(flagDisable, "d", false, strings.Title(flagDisable)) + chargerCmd.Flags().BoolP(flagWakeup, "w", false, flagWakeupDescription) } func runCharger(cmd *cobra.Command, args []string) { @@ -45,15 +43,10 @@ func runCharger(cmd *cobra.Command, args []string) { } // setup environment - if err := configureEnvironment(conf); err != nil { + if err := configureEnvironment(cmd, conf); err != nil { log.FATAL.Fatal(err) } - // full http request log - if cmd.PersistentFlags().Lookup(flagHeaders).Changed { - request.LogHeaders = true - } - // select single charger if err := selectByName(cmd, &conf.Chargers); err != nil { log.FATAL.Fatal(err) @@ -77,7 +70,7 @@ func runCharger(cmd *cobra.Command, args []string) { } current := int64(noCurrent) - if flag := cmd.PersistentFlags().Lookup(flagCurrent); flag.Changed { + if flag := cmd.Flags().Lookup(flagCurrent); flag.Changed { var err error current, err = strconv.ParseInt(flag.Value.String(), 10, 64) if err != nil { @@ -95,7 +88,7 @@ func runCharger(cmd *cobra.Command, args []string) { } } - if cmd.PersistentFlags().Lookup(flagEnable).Changed { + if cmd.Flags().Lookup(flagEnable).Changed { flagUsed = true if err := v.Enable(true); err != nil { @@ -103,7 +96,7 @@ func runCharger(cmd *cobra.Command, args []string) { } } - if cmd.PersistentFlags().Lookup(flagDisable).Changed { + if cmd.Flags().Lookup(flagDisable).Changed { flagUsed = true if err := v.Enable(false); err != nil { @@ -111,7 +104,7 @@ func runCharger(cmd *cobra.Command, args []string) { } } - if cmd.PersistentFlags().Lookup(flagWakeup).Changed { + if cmd.Flags().Lookup(flagWakeup).Changed { flagUsed = true if vv, ok := v.(api.Resurrector); ok { diff --git a/cmd/charger_ramp.go b/cmd/charger_ramp.go index 60316ddfe..2aebdad9b 100644 --- a/cmd/charger_ramp.go +++ b/cmd/charger_ramp.go @@ -10,7 +10,6 @@ import ( "github.com/evcc-io/evcc/cmd/shutdown" "github.com/evcc-io/evcc/server" "github.com/evcc-io/evcc/util" - "github.com/evcc-io/evcc/util/request" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -27,10 +26,8 @@ var chargerRampCmd = &cobra.Command{ func init() { chargerCmd.AddCommand(chargerRampCmd) - chargerRampCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "charger")) - chargerRampCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) - chargerRampCmd.PersistentFlags().StringP(flagDigits, "", "0", "fractional digits (0..2)") - chargerRampCmd.PersistentFlags().StringP(flagDelay, "", "1s", "ramp delay") + chargerRampCmd.Flags().StringP(flagDigits, "", "0", "fractional digits (0..2)") + chargerRampCmd.Flags().StringP(flagDelay, "", "1s", "ramp delay") } func ramp(c api.Charger, digits int, delay time.Duration) { @@ -81,15 +78,10 @@ func runChargerRamp(cmd *cobra.Command, args []string) { } // setup environment - if err := configureEnvironment(conf); err != nil { + if err := configureEnvironment(cmd, conf); err != nil { log.FATAL.Fatal(err) } - // full http request log - if cmd.PersistentFlags().Lookup(flagHeaders).Changed { - request.LogHeaders = true - } - // select single charger if err := selectByName(cmd, &conf.Chargers); err != nil { log.FATAL.Fatal(err) @@ -112,12 +104,12 @@ func runChargerRamp(cmd *cobra.Command, args []string) { chargers = map[string]api.Charger{name: charger} } - digits, err := strconv.Atoi(cmd.PersistentFlags().Lookup(flagDigits).Value.String()) + digits, err := strconv.Atoi(cmd.Flags().Lookup(flagDigits).Value.String()) if err != nil { log.ERROR.Fatalln(err) } - delay, err := time.ParseDuration(cmd.PersistentFlags().Lookup(flagDelay).Value.String()) + delay, err := time.ParseDuration(cmd.Flags().Lookup(flagDelay).Value.String()) if err != nil { log.ERROR.Fatalln(err) } diff --git a/cmd/dump.go b/cmd/dump.go index d5443fea7..1a4eae537 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -52,7 +52,7 @@ func runDump(cmd *cobra.Command, args []string) { // setup environment if err == nil { - err = configureEnvironment(conf) + err = configureEnvironment(cmd, conf) } var site *core.Site diff --git a/cmd/meter.go b/cmd/meter.go index 8fff24e17..4981b9e23 100644 --- a/cmd/meter.go +++ b/cmd/meter.go @@ -6,7 +6,6 @@ import ( "github.com/evcc-io/evcc/api" "github.com/evcc-io/evcc/server" "github.com/evcc-io/evcc/util" - "github.com/evcc-io/evcc/util/request" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -21,7 +20,6 @@ var meterCmd = &cobra.Command{ func init() { rootCmd.AddCommand(meterCmd) meterCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "meter")) - meterCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) } func runMeter(cmd *cobra.Command, args []string) { @@ -34,15 +32,10 @@ func runMeter(cmd *cobra.Command, args []string) { } // setup environment - if err := configureEnvironment(conf); err != nil { + if err := configureEnvironment(cmd, conf); err != nil { log.FATAL.Fatal(err) } - // full http request log - if cmd.PersistentFlags().Lookup(flagHeaders).Changed { - request.LogHeaders = true - } - // select single meter if err := selectByName(cmd, &conf.Meters); err != nil { log.FATAL.Fatal(err) diff --git a/cmd/root.go b/cmd/root.go index e2d99ce95..56a593da3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -22,7 +22,6 @@ import ( "github.com/evcc-io/evcc/server/updater" "github.com/evcc-io/evcc/util" "github.com/evcc-io/evcc/util/pipe" - "github.com/evcc-io/evcc/util/request" "github.com/evcc-io/evcc/util/sponsor" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -180,11 +179,6 @@ func runRoot(cmd *cobra.Command, args []string) { util.LogLevel(viper.GetString("log"), viper.GetStringMapString("levels")) - // full http request log - if cmd.PersistentFlags().Lookup(flagHeaders).Changed { - request.LogHeaders = true - } - // network config if viper.GetString("uri") != "" { log.WARN.Println("`uri` is deprecated and will be ignored. Use `network` instead.") @@ -222,7 +216,7 @@ func runRoot(cmd *cobra.Command, args []string) { // setup environment if err == nil { - err = configureEnvironment(conf) + err = configureEnvironment(cmd, conf) } // setup site and loadpoints diff --git a/cmd/setup.go b/cmd/setup.go index a4cbd5c37..b90f132d8 100644 --- a/cmd/setup.go +++ b/cmd/setup.go @@ -22,10 +22,12 @@ import ( "github.com/evcc-io/evcc/util" "github.com/evcc-io/evcc/util/machine" "github.com/evcc-io/evcc/util/pipe" + "github.com/evcc-io/evcc/util/request" "github.com/evcc-io/evcc/util/sponsor" "github.com/evcc-io/evcc/util/telemetry" "github.com/libp2p/zeroconf/v2" "github.com/samber/lo" + "github.com/spf13/cobra" "github.com/spf13/viper" "golang.org/x/text/currency" ) @@ -54,7 +56,12 @@ func loadConfigFile(conf *config) error { return err } -func configureEnvironment(conf config) (err error) { +func configureEnvironment(cmd *cobra.Command, conf config) (err error) { + // full http request log + if cmd.Flags().Lookup(flagHeaders).Changed { + request.LogHeaders = true + } + // setup machine id if conf.Plant != "" { err = machine.CustomID(conf.Plant) diff --git a/cmd/vehicle.go b/cmd/vehicle.go index a56585053..5af8f9504 100644 --- a/cmd/vehicle.go +++ b/cmd/vehicle.go @@ -6,7 +6,6 @@ import ( "github.com/evcc-io/evcc/api" "github.com/evcc-io/evcc/server" "github.com/evcc-io/evcc/util" - "github.com/evcc-io/evcc/util/request" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -21,10 +20,9 @@ var vehicleCmd = &cobra.Command{ func init() { rootCmd.AddCommand(vehicleCmd) vehicleCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "vehicle")) - vehicleCmd.PersistentFlags().BoolP(flagStart, "a", false, flagStartDescription) - vehicleCmd.PersistentFlags().BoolP(flagStop, "o", false, flagStopDescription) - vehicleCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeupDescription) - vehicleCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) + vehicleCmd.Flags().BoolP(flagStart, "a", false, flagStartDescription) + vehicleCmd.Flags().BoolP(flagStop, "o", false, flagStopDescription) + vehicleCmd.Flags().BoolP(flagWakeup, "w", false, flagWakeupDescription) } func runVehicle(cmd *cobra.Command, args []string) { @@ -37,15 +35,10 @@ func runVehicle(cmd *cobra.Command, args []string) { } // setup environment - if err := configureEnvironment(conf); err != nil { + if err := configureEnvironment(cmd, conf); err != nil { log.FATAL.Fatal(err) } - // full http request log - if cmd.PersistentFlags().Lookup(flagHeaders).Changed { - request.LogHeaders = true - } - // select single vehicle if err := selectByName(cmd, &conf.Vehicles); err != nil { log.FATAL.Fatal(err) @@ -69,7 +62,7 @@ func runVehicle(cmd *cobra.Command, args []string) { var flagUsed bool for _, v := range vehicles { - if cmd.PersistentFlags().Lookup(flagWakeup).Changed { + if cmd.Flags().Lookup(flagWakeup).Changed { flagUsed = true if vv, ok := v.(api.Resurrector); ok { @@ -81,7 +74,7 @@ func runVehicle(cmd *cobra.Command, args []string) { } } - if cmd.PersistentFlags().Lookup(flagStart).Changed { + if cmd.Flags().Lookup(flagStart).Changed { flagUsed = true if vv, ok := v.(api.VehicleChargeController); ok { @@ -93,7 +86,7 @@ func runVehicle(cmd *cobra.Command, args []string) { } } - if cmd.PersistentFlags().Lookup(flagStop).Changed { + if cmd.Flags().Lookup(flagStop).Changed { flagUsed = true if vv, ok := v.(api.VehicleChargeController); ok {