1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
14 func Flagfn2(string, string, func(string, string)) { panic("flag") }
16 func Flagcount(name
, usage
string, val
*int) {
17 flag
.Var((*count
)(val
), name
, usage
)
20 func Flagint32(name
, usage
string, val
*int32) {
21 flag
.Var((*int32Value
)(val
), name
, usage
)
24 func Flagint64(name
, usage
string, val
*int64) {
25 flag
.Int64Var(val
, name
, *val
, usage
)
28 func Flagstr(name
, usage
string, val
*string) {
29 flag
.StringVar(val
, name
, *val
, usage
)
32 func Flagfn0(name
, usage
string, f
func()) {
33 flag
.Var(fn0(f
), name
, usage
)
36 func Flagfn1(name
, usage
string, f
func(string)) {
37 flag
.Var(fn1(f
), name
, usage
)
40 func Flagprint(fd
int) {
42 flag
.CommandLine
.SetOutput(os
.Stdout
)
47 func Flagparse(usage
func()) {
52 // count is a flag.Value that is like a flag.Bool and a flag.Int.
53 // If used as -name, it increments the count, but -name=x sets the count.
54 // Used for verbose flag -v.
57 func (c
*count
) String() string {
58 return fmt
.Sprint(int(*c
))
61 func (c
*count
) Set(s
string) error
{
68 n
, err
:= strconv
.Atoi(s
)
70 return fmt
.Errorf("invalid count %q", s
)
77 func (c
*count
) IsBoolFlag() bool {
83 func (i
*int32Value
) Set(s
string) error
{
84 v
, err
:= strconv
.ParseInt(s
, 0, 64)
89 func (i
*int32Value
) Get() interface{} { return int32(*i
) }
91 func (i
*int32Value
) String() string { return fmt
.Sprint(*i
) }
95 func (f fn0
) Set(s
string) error
{
100 func (f fn0
) Get() interface{} { return nil }
102 func (f fn0
) String() string { return "" }
104 func (f fn0
) IsBoolFlag() bool {
108 type fn1
func(string)
110 func (f fn1
) Set(s
string) error
{
115 func (f fn1
) String() string { return "" }