Get rid from pflag dependency.
This commit is contained in:
parent
c0853ca918
commit
7a21684147
1 changed files with 18 additions and 15 deletions
33
ui.go
33
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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue