aboutsummaryrefslogtreecommitdiff
path: root/bool.go
diff options
context:
space:
mode:
authorspf13 <[email protected]>2014-06-27 09:29:20 -0400
committerspf13 <[email protected]>2014-06-27 09:29:20 -0400
commitb9035d0aef89271f98c3a2435e9cc614ffe5e81e (patch)
treea47a1b482eced55d5af0d60065b87c590ff75868 /bool.go
parent94e98a55fb412fcbcfc302555cb990f5e1590627 (diff)
parente4f7d00f344b0954fa3791a8527d10ba7334eceb (diff)
Merge branch 'master' of https://github.com/ogier/pflag
Conflicts: flag.go
Diffstat (limited to 'bool.go')
-rw-r--r--bool.go70
1 files changed, 70 insertions, 0 deletions
diff --git a/bool.go b/bool.go
new file mode 100644
index 0000000..60beb54
--- /dev/null
+++ b/bool.go
@@ -0,0 +1,70 @@
+package pflag
+
+import (
+ "fmt"
+ "strconv"
+)
+
+// -- bool Value
+type boolValue bool
+
+func newBoolValue(val bool, p *bool) *boolValue {
+ *p = val
+ return (*boolValue)(p)
+}
+
+func (b *boolValue) Set(s string) error {
+ v, err := strconv.ParseBool(s)
+ *b = boolValue(v)
+ return err
+}
+
+func (b *boolValue) String() string { return fmt.Sprintf("%v", *b) }
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
+ f.VarP(newBoolValue(value, p), name, "", usage)
+}
+
+// Like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+ f.VarP(newBoolValue(value, p), name, shorthand, usage)
+}
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func BoolVar(p *bool, name string, value bool, usage string) {
+ CommandLine.VarP(newBoolValue(value, p), name, "", usage)
+}
+
+// Like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+ CommandLine.VarP(newBoolValue(value, p), name, shorthand, usage)
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func (f *FlagSet) Bool(name string, value bool, usage string) *bool {
+ p := new(bool)
+ f.BoolVarP(p, name, "", value, usage)
+ return p
+}
+
+// Like Bool, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool {
+ p := new(bool)
+ f.BoolVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func Bool(name string, value bool, usage string) *bool {
+ return CommandLine.BoolP(name, "", value, usage)
+}
+
+// Like Bool, but accepts a shorthand letter that can be used after a single dash.
+func BoolP(name, shorthand string, value bool, usage string) *bool {
+ return CommandLine.BoolP(name, shorthand, value, usage)
+}