diff --git a/argument.go b/argument.go index 2688839..0fca9d5 100644 --- a/argument.go +++ b/argument.go @@ -435,7 +435,10 @@ func (o *arg) usage() string { case *bool: break case *int: - result = result + " " + isFlagCounter := !o.unique && o.size == 1 + if !isFlagCounter { + result = result + " " + } case *float64: result = result + " " case *string: diff --git a/examples/flag-counter/flag-counter.go b/examples/flag-counter/flag-counter.go new file mode 100644 index 0000000..6be3e6a --- /dev/null +++ b/examples/flag-counter/flag-counter.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "github.com/akamensky/argparse" + "os" +) + +func main() { + // initialize parser + parser := argparse.NewParser("FlagCounter", "Example of FlagCounter usage") + + // create FlagCounter argument + opts := &argparse.Options{ + Required: true, + Help: "Will print out how many instances of the flag are found. For example, both -nn and --number --number will be 2", + } + count := parser.FlagCounter("n", "number", opts) + + // parse arguments + err := parser.Parse(os.Args) + + // check for errors in parsing + if err != nil { + fmt.Printf("Error parsing: [%+v]\n", err) + return + } + + // print out the number of occurrences of the flag + fmt.Printf("Number of flags detected: [%d]\n", *count) +}