diff --git a/ui.go b/ui.go index 6fb3c86..794b506 100644 --- a/ui.go +++ b/ui.go @@ -1,33 +1,36 @@ -// This package provides --quiet and --verbose flags for cli and corresponding output print functions PrintOut and PrintVerbose. -// Another line package ui import ( "fmt" "io" "os" - - "github.com/spf13/pflag" + "strings" ) var stdOutput io.Writer var verboseOutput io.Writer func init() { - outputFlagSet := pflag.NewFlagSet("output", pflag.ContinueOnError) - outputFlagSet.ParseErrorsWhitelist.UnknownFlags = true - outputFlagSet.SetOutput(nil) + isQuiet := detectFlag("q", "--quiet") + isVerbose := detectFlag("V", "--verbose") - isVerbose := outputFlagSet.BoolP("verbose", "V", false, "If set adds additional details to output.") - isQuiet := outputFlagSet.BoolP("quiet", "q", false, "If set makes no output at all.") + SetupOutputMode(isQuiet, isVerbose) +} - err := outputFlagSet.Parse(os.Args) - if err != nil { - fmt.Println(err) - os.Exit(1) - } +func detectFlag(shortFlag string, fullFlag string) bool { + for _, arg := range os.Args { + return containFlag(arg, shortFlag) || arg == fullFlag + } + return false +} - SetupOutputMode(*isQuiet, *isVerbose) +func containFlag(arg string, shortFlag string) bool { + if len(arg)>1 { + if arg[0] == "-"[0] && arg[1] != "-"[0] { + return strings.Contains(arg, shortFlag) + } + } + return false } func SetupOutputMode(isQuiet bool, isVerbose bool) {