Refactor flags to use flagzog package
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 35s

Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
This commit is contained in:
Jan Tytgat
2025-06-09 22:18:47 +02:00
parent 9adebbf0e2
commit fa641b06b2
4 changed files with 61 additions and 37 deletions

View File

@ -1,26 +1,38 @@
package application
import "github.com/spf13/cobra"
import (
"github.com/Oudwins/zog"
"github.com/spf13/cobra"
var jsonOutputFlag bool
var noColorFlag bool
var quietFlag bool
var verboseFlag bool
"git.flexabyte.io/flexabyte/go-kit/flagzog"
)
const (
quietFlagShortCode = "q"
verboseFlagShortCode = "v"
)
var (
jsonOutputFlag = flagzog.NewBoolFlag("json", zog.Bool(), "Enable JSON output")
noColorFlag = flagzog.NewBoolFlag("no-color", zog.Bool(), "Disable colored output")
quietFlag = flagzog.NewBoolFlag("quiet", zog.Bool(), "Suppress output")
verboseFlag = flagzog.NewBoolFlag("verbose", zog.Bool(), "Enable verbose output")
)
func addJsonOutputFlag(cmd *cobra.Command) {
cmd.PersistentFlags().BoolVarP(&jsonOutputFlag, "json", "", false, "Enable JSON outWriter")
cmd.PersistentFlags().BoolVarP(&jsonOutputFlag.Value, jsonOutputFlag.Name(), "", false, jsonOutputFlag.Usage())
}
func addNoColorFlag(cmd *cobra.Command) {
cmd.PersistentFlags().BoolVarP(&noColorFlag, "no-color", "", false, "Disable color outWriter")
cmd.PersistentFlags().BoolVarP(&noColorFlag.Value, noColorFlag.Name(), "", false, noColorFlag.Usage())
}
func addQuietFlag(cmd *cobra.Command) {
cmd.PersistentFlags().BoolVarP(&quietFlag, "quiet", "q", false, "Enable quiet mode")
cmd.PersistentFlags().BoolVarP(&quietFlag.Value, quietFlag.Name(), quietFlagShortCode, false, quietFlag.Usage())
}
func addVerboseFlag(cmd *cobra.Command) {
cmd.PersistentFlags().BoolVarP(&verboseFlag, "verbose", "v", false, "Enable verbose outWriter")
cmd.PersistentFlags().BoolVarP(&verboseFlag.Value, verboseFlag.Name(), verboseFlagShortCode, false, verboseFlag.Usage())
}
func configureOutputFlags(cmd *cobra.Command) {
@ -29,8 +41,7 @@ func configureOutputFlags(cmd *cobra.Command) {
addVerboseFlag(cmd)
addQuietFlag(cmd)
cmd.MarkFlagsMutuallyExclusive("verbose", "quiet", "json")
cmd.MarkFlagsMutuallyExclusive("json", "no-color")
cmd.MarkFlagsMutuallyExclusive("quiet", "no-color")
cmd.MarkFlagsMutuallyExclusive(verboseFlag.Name(), quietFlag.Name(), jsonOutputFlag.Name())
cmd.MarkFlagsMutuallyExclusive(jsonOutputFlag.Name(), noColorFlag.Name())
cmd.MarkFlagsMutuallyExclusive(quietFlag.Name(), noColorFlag.Name())
}