mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Update github.com/spf13/pflag to include spf13/pflag#3
We need support for IsBoolFlag() in order to implement `--version` (without an explicit `--version=true`) and also `--version=raw`. Updated using `godep update github.com/spf13/pflag`. Tested: $ _output/local/bin/linux/amd64/kubelet --version Kubernetes v0.8.0-590-gc61720437ec181 $ _output/local/bin/linux/amd64/kubelet --version=raw version.Info{Major:"0", Minor:"8+", GitVersion:"v0.8.0-590-gc61720437ec181", GitCommit:"c61720437ec181ae3fbbfb9d6df5efdf3e3b6c2e", GitTreeState:"clean"}
This commit is contained in:
parent
2863fa9fe6
commit
374f9978d6
2
Godeps/Godeps.json
generated
2
Godeps/Godeps.json
generated
@ -168,7 +168,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/spf13/pflag",
|
"ImportPath": "github.com/spf13/pflag",
|
||||||
"Rev": "463bdc838f2b35e9307e91d480878bda5fff7232"
|
"Rev": "f82776d6cc998e3c026baef7b24409ff49fe5c8d"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/stretchr/objx",
|
"ImportPath": "github.com/stretchr/objx",
|
||||||
|
9
Godeps/_workspace/src/github.com/spf13/pflag/bool.go
generated
vendored
9
Godeps/_workspace/src/github.com/spf13/pflag/bool.go
generated
vendored
@ -5,6 +5,13 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// optional interface to indicate boolean flags that can be
|
||||||
|
// supplied without "=value" text
|
||||||
|
type boolFlag interface {
|
||||||
|
Value
|
||||||
|
IsBoolFlag() bool
|
||||||
|
}
|
||||||
|
|
||||||
// -- bool Value
|
// -- bool Value
|
||||||
type boolValue bool
|
type boolValue bool
|
||||||
|
|
||||||
@ -25,6 +32,8 @@ func (b *boolValue) Type() string {
|
|||||||
|
|
||||||
func (b *boolValue) String() string { return fmt.Sprintf("%v", *b) }
|
func (b *boolValue) String() string { return fmt.Sprintf("%v", *b) }
|
||||||
|
|
||||||
|
func (b *boolValue) IsBoolFlag() bool { return true }
|
||||||
|
|
||||||
// BoolVar defines a bool flag with specified name, default value, and usage string.
|
// 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.
|
// 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) {
|
func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
|
||||||
|
163
Godeps/_workspace/src/github.com/spf13/pflag/bool_test.go
generated
vendored
Normal file
163
Godeps/_workspace/src/github.com/spf13/pflag/bool_test.go
generated
vendored
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
// Copyright 2009 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package pflag_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
. "github.com/ogier/pflag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// This value can be a boolean ("true", "false") or "maybe"
|
||||||
|
type triStateValue int
|
||||||
|
|
||||||
|
const (
|
||||||
|
triStateFalse triStateValue = 0
|
||||||
|
triStateTrue triStateValue = 1
|
||||||
|
triStateMaybe triStateValue = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
const strTriStateMaybe = "maybe"
|
||||||
|
|
||||||
|
func (v *triStateValue) IsBoolFlag() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *triStateValue) Get() interface{} {
|
||||||
|
return triStateValue(*v)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *triStateValue) Set(s string) error {
|
||||||
|
if s == strTriStateMaybe {
|
||||||
|
*v = triStateMaybe
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
boolVal, err := strconv.ParseBool(s)
|
||||||
|
if boolVal {
|
||||||
|
*v = triStateTrue
|
||||||
|
} else {
|
||||||
|
*v = triStateFalse
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *triStateValue) String() string {
|
||||||
|
if *v == triStateMaybe {
|
||||||
|
return strTriStateMaybe
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%v", bool(*v == triStateTrue))
|
||||||
|
}
|
||||||
|
|
||||||
|
// The type of the flag as requred by the pflag.Value interface
|
||||||
|
func (v *triStateValue) Type() string {
|
||||||
|
return "version"
|
||||||
|
}
|
||||||
|
|
||||||
|
func setUpFlagSet(tristate *triStateValue) *FlagSet {
|
||||||
|
f := NewFlagSet("test", ContinueOnError)
|
||||||
|
*tristate = triStateFalse
|
||||||
|
f.VarP(tristate, "tristate", "t", "tristate value (true, maybe or false)")
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestExplicitTrue(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"--tristate=true"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateTrue {
|
||||||
|
t.Fatal("expected", triStateTrue, "(triStateTrue) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestImplicitTrue(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"--tristate"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateTrue {
|
||||||
|
t.Fatal("expected", triStateTrue, "(triStateTrue) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShortFlag(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"-t"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateTrue {
|
||||||
|
t.Fatal("expected", triStateTrue, "(triStateTrue) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShortFlagExtraArgument(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
// The"maybe"turns into an arg, since short boolean options will only do true/false
|
||||||
|
err := f.Parse([]string{"-t", "maybe"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateTrue {
|
||||||
|
t.Fatal("expected", triStateTrue, "(triStateTrue) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
args := f.Args()
|
||||||
|
if len(args) != 1 || args[0] != "maybe" {
|
||||||
|
t.Fatal("expected an extra 'maybe' argument to stick around")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestExplicitMaybe(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"--tristate=maybe"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateMaybe {
|
||||||
|
t.Fatal("expected", triStateMaybe, "(triStateMaybe) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestExplicitFalse(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"--tristate=false"})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateFalse {
|
||||||
|
t.Fatal("expected", triStateFalse, "(triStateFalse) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestImplicitFalse(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("expected no error; got", err)
|
||||||
|
}
|
||||||
|
if tristate != triStateFalse {
|
||||||
|
t.Fatal("expected", triStateFalse, "(triStateFalse) but got", tristate, "instead")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInvalidValue(t *testing.T) {
|
||||||
|
var tristate triStateValue
|
||||||
|
f := setUpFlagSet(&tristate)
|
||||||
|
err := f.Parse([]string{"--tristate=invalid"})
|
||||||
|
if err == nil {
|
||||||
|
t.Fatal("expected an error but did not get any, tristate has value", tristate)
|
||||||
|
}
|
||||||
|
}
|
4
Godeps/_workspace/src/github.com/spf13/pflag/example_test.go
generated
vendored
4
Godeps/_workspace/src/github.com/spf13/pflag/example_test.go
generated
vendored
@ -29,6 +29,10 @@ func (i *interval) String() string {
|
|||||||
return fmt.Sprint(*i)
|
return fmt.Sprint(*i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (i *interval) Type() string {
|
||||||
|
return "interval"
|
||||||
|
}
|
||||||
|
|
||||||
// Set is the method to set the flag value, part of the flag.Value interface.
|
// Set is the method to set the flag value, part of the flag.Value interface.
|
||||||
// Set's argument is a string to be parsed to set the flag.
|
// Set's argument is a string to be parsed to set the flag.
|
||||||
// It's a comma-separated list, so we split it.
|
// It's a comma-separated list, so we split it.
|
||||||
|
4
Godeps/_workspace/src/github.com/spf13/pflag/flag.go
generated
vendored
4
Godeps/_workspace/src/github.com/spf13/pflag/flag.go
generated
vendored
@ -466,7 +466,7 @@ func (f *FlagSet) parseLongArg(s string, args []string) (a []string, err error)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(split) == 1 {
|
if len(split) == 1 {
|
||||||
if _, ok := flag.Value.(*boolValue); !ok {
|
if bv, ok := flag.Value.(boolFlag); !ok || !bv.IsBoolFlag() {
|
||||||
err = f.failf("flag needs an argument: %s", s)
|
err = f.failf("flag needs an argument: %s", s)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -500,7 +500,7 @@ func (f *FlagSet) parseShortArg(s string, args []string) (a []string, err error)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if alreadythere {
|
if alreadythere {
|
||||||
if _, ok := flag.Value.(*boolValue); ok {
|
if bv, ok := flag.Value.(boolFlag); ok && bv.IsBoolFlag() {
|
||||||
f.setFlag(flag, "true", s)
|
f.setFlag(flag, "true", s)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
4
Godeps/_workspace/src/github.com/spf13/pflag/flag_test.go
generated
vendored
4
Godeps/_workspace/src/github.com/spf13/pflag/flag_test.go
generated
vendored
@ -245,6 +245,10 @@ func (f *flagVar) Set(value string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *flagVar) Type() string {
|
||||||
|
return "flagVar"
|
||||||
|
}
|
||||||
|
|
||||||
func TestUserDefined(t *testing.T) {
|
func TestUserDefined(t *testing.T) {
|
||||||
var flags FlagSet
|
var flags FlagSet
|
||||||
flags.Init("test", ContinueOnError)
|
flags.Init("test", ContinueOnError)
|
||||||
|
Loading…
Reference in New Issue
Block a user