Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
bcf91266
Commit
bcf91266
authored
Aug 16, 2015
by
Eric Paris
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use pflag functions instead of ours.
parent
681ee126
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
20 additions
and
126 deletions
+20
-126
hyperkube.go
cmd/hyperkube/hyperkube.go
+3
-3
hyperkube_test.go
cmd/hyperkube/hyperkube_test.go
+2
-2
hyperkube.go
contrib/mesos/cmd/km/hyperkube.go
+3
-3
hyperkube_test.go
contrib/mesos/cmd/km/hyperkube_test.go
+2
-2
factory.go
pkg/kubectl/cmd/util/factory.go
+3
-3
flags.go
pkg/util/flags.go
+7
-4
pflag_import.go
pkg/util/pflag_import.go
+0
-109
No files found.
cmd/hyperkube/hyperkube.go
View file @
bcf91266
...
@@ -77,8 +77,8 @@ func (hk *HyperKube) Flags() *pflag.FlagSet {
...
@@ -77,8 +77,8 @@ func (hk *HyperKube) Flags() *pflag.FlagSet {
// These will add all of the "global" flags (defined with both the
// These will add all of the "global" flags (defined with both the
// flag and pflag packages) to the new flag set we have.
// flag and pflag packages) to the new flag set we have.
util
.
AddFlagSetToPFlagSet
(
flag
.
CommandLine
,
hk
.
baseFlags
)
hk
.
baseFlags
.
AddGoFlagSet
(
flag
.
CommandLine
)
util
.
AddPFlagSetToPFlagSet
(
pflag
.
CommandLine
,
hk
.
baseFlags
)
hk
.
baseFlags
.
AddFlagSet
(
pflag
.
CommandLine
)
}
}
return
hk
.
baseFlags
return
hk
.
baseFlags
...
@@ -154,7 +154,7 @@ func (hk *HyperKube) Run(args []string) error {
...
@@ -154,7 +154,7 @@ func (hk *HyperKube) Run(args []string) error {
return
err
return
err
}
}
util
.
AddPFlagSetToPFlagSet
(
hk
.
Flags
(),
s
.
Flags
())
s
.
Flags
()
.
AddFlagSet
(
hk
.
Flags
())
err
=
s
.
Flags
()
.
Parse
(
args
)
err
=
s
.
Flags
()
.
Parse
(
args
)
if
err
!=
nil
||
hk
.
helpFlagVal
{
if
err
!=
nil
||
hk
.
helpFlagVal
{
if
err
!=
nil
{
if
err
!=
nil
{
...
...
cmd/hyperkube/hyperkube_test.go
View file @
bcf91266
...
@@ -126,7 +126,7 @@ func TestServerHelp(t *testing.T) {
...
@@ -126,7 +126,7 @@ func TestServerHelp(t *testing.T) {
x
:=
runFull
(
t
,
"hyperkube test1 --help"
)
x
:=
runFull
(
t
,
"hyperkube test1 --help"
)
assert
.
NoError
(
t
,
x
.
err
)
assert
.
NoError
(
t
,
x
.
err
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
=false
: help for hyperkube"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
[=false]
: help for hyperkube"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
}
}
...
@@ -134,7 +134,7 @@ func TestServerFlagsBad(t *testing.T) {
...
@@ -134,7 +134,7 @@ func TestServerFlagsBad(t *testing.T) {
x
:=
runFull
(
t
,
"hyperkube test1 --bad-flag"
)
x
:=
runFull
(
t
,
"hyperkube test1 --bad-flag"
)
assert
.
EqualError
(
t
,
x
.
err
,
"unknown flag: --bad-flag"
)
assert
.
EqualError
(
t
,
x
.
err
,
"unknown flag: --bad-flag"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
=false
: help for hyperkube"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
[=false]
: help for hyperkube"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
}
}
...
...
contrib/mesos/cmd/km/hyperkube.go
View file @
bcf91266
...
@@ -75,8 +75,8 @@ func (hk *HyperKube) Flags() *pflag.FlagSet {
...
@@ -75,8 +75,8 @@ func (hk *HyperKube) Flags() *pflag.FlagSet {
// These will add all of the "global" flags (defined with both the
// These will add all of the "global" flags (defined with both the
// flag and pflag packages) to the new flag set we have.
// flag and pflag packages) to the new flag set we have.
util
.
AddFlagSetToPFlagSet
(
flag
.
CommandLine
,
hk
.
baseFlags
)
hk
.
baseFlags
.
AddGoFlagSet
(
flag
.
CommandLine
)
util
.
AddPFlagSetToPFlagSet
(
pflag
.
CommandLine
,
hk
.
baseFlags
)
hk
.
baseFlags
.
AddFlagSet
(
pflag
.
CommandLine
)
}
}
return
hk
.
baseFlags
return
hk
.
baseFlags
...
@@ -152,7 +152,7 @@ func (hk *HyperKube) Run(args []string) error {
...
@@ -152,7 +152,7 @@ func (hk *HyperKube) Run(args []string) error {
return
err
return
err
}
}
util
.
AddPFlagSetToPFlagSet
(
hk
.
Flags
(),
s
.
Flags
())
s
.
Flags
()
.
AddFlagSet
(
hk
.
Flags
())
err
=
s
.
Flags
()
.
Parse
(
args
)
err
=
s
.
Flags
()
.
Parse
(
args
)
if
err
!=
nil
||
hk
.
helpFlagVal
{
if
err
!=
nil
||
hk
.
helpFlagVal
{
if
err
!=
nil
{
if
err
!=
nil
{
...
...
contrib/mesos/cmd/km/hyperkube_test.go
View file @
bcf91266
...
@@ -125,7 +125,7 @@ func TestServerHelp(t *testing.T) {
...
@@ -125,7 +125,7 @@ func TestServerHelp(t *testing.T) {
x
:=
runFull
(
t
,
"hyperkube test1 --help"
)
x
:=
runFull
(
t
,
"hyperkube test1 --help"
)
assert
.
NoError
(
t
,
x
.
err
)
assert
.
NoError
(
t
,
x
.
err
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
=false
: help for hyperkube"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
[=false]
: help for hyperkube"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
}
}
...
@@ -133,7 +133,7 @@ func TestServerFlagsBad(t *testing.T) {
...
@@ -133,7 +133,7 @@ func TestServerFlagsBad(t *testing.T) {
x
:=
runFull
(
t
,
"hyperkube test1 --bad-flag"
)
x
:=
runFull
(
t
,
"hyperkube test1 --bad-flag"
)
assert
.
EqualError
(
t
,
x
.
err
,
"unknown flag: --bad-flag"
)
assert
.
EqualError
(
t
,
x
.
err
,
"unknown flag: --bad-flag"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"A simple server named test1"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
=false
: help for hyperkube"
)
assert
.
Contains
(
t
,
x
.
output
,
"--help
[=false]
: help for hyperkube"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
assert
.
NotContains
(
t
,
x
.
output
,
"test1 Run"
)
}
}
...
...
pkg/kubectl/cmd/util/factory.go
View file @
bcf91266
...
@@ -271,11 +271,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
...
@@ -271,11 +271,11 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
// BindFlags adds any flags that are common to all kubectl sub commands.
// BindFlags adds any flags that are common to all kubectl sub commands.
func
(
f
*
Factory
)
BindFlags
(
flags
*
pflag
.
FlagSet
)
{
func
(
f
*
Factory
)
BindFlags
(
flags
*
pflag
.
FlagSet
)
{
// any flags defined by external projects (not part of pflags)
// any flags defined by external projects (not part of pflags)
util
.
AddFlagSetToPFlagSet
(
flag
.
CommandLine
,
flags
)
flags
.
AddGoFlagSet
(
flag
.
CommandLine
)
// This is necessary as github.com/spf13/cobra doesn't support "global"
// This is necessary as github.com/spf13/cobra doesn't support "global"
// pflags currently. See https://github.com/spf13/cobra/issues/44.
// pflags currently. See https://github.com/spf13/cobra/issues/44.
util
.
AddPFlagSetToPFlagSet
(
pflag
.
CommandLine
,
flags
)
flags
.
AddFlagSet
(
pflag
.
CommandLine
)
// Hack for global access to validation flag.
// Hack for global access to validation flag.
// TODO: Refactor out after configuration flag overhaul.
// TODO: Refactor out after configuration flag overhaul.
...
@@ -284,7 +284,7 @@ func (f *Factory) BindFlags(flags *pflag.FlagSet) {
...
@@ -284,7 +284,7 @@ func (f *Factory) BindFlags(flags *pflag.FlagSet) {
}
}
// Merge factory's flags
// Merge factory's flags
util
.
AddPFlagSetToPFlagSet
(
f
.
flags
,
flags
)
flags
.
AddFlagSet
(
f
.
flags
)
// Globally persistent flags across all subcommands.
// Globally persistent flags across all subcommands.
// TODO Change flag names to consts to allow safer lookup from subcommands.
// TODO Change flag names to consts to allow safer lookup from subcommands.
...
...
pkg/util/flags.go
View file @
bcf91266
...
@@ -16,10 +16,13 @@ limitations under the License.
...
@@ -16,10 +16,13 @@ limitations under the License.
package
util
package
util
import
"strings"
import
(
goflag
"flag"
"strings"
import
"github.com/spf13/pflag"
"github.com/golang/glog"
import
"github.com/golang/glog"
"github.com/spf13/pflag"
)
// WordSepNormalizeFunc changes all flags that contain "_" separators
// WordSepNormalizeFunc changes all flags that contain "_" separators
func
WordSepNormalizeFunc
(
f
*
pflag
.
FlagSet
,
name
string
)
pflag
.
NormalizedName
{
func
WordSepNormalizeFunc
(
f
*
pflag
.
FlagSet
,
name
string
)
pflag
.
NormalizedName
{
...
@@ -43,6 +46,6 @@ func WarnWordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedNam
...
@@ -43,6 +46,6 @@ func WarnWordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedNam
// InitFlags normalizes and parses the command line flags
// InitFlags normalizes and parses the command line flags
func
InitFlags
()
{
func
InitFlags
()
{
pflag
.
CommandLine
.
SetNormalizeFunc
(
WordSepNormalizeFunc
)
pflag
.
CommandLine
.
SetNormalizeFunc
(
WordSepNormalizeFunc
)
AddAllFlagsToPFlags
(
)
pflag
.
CommandLine
.
AddGoFlagSet
(
goflag
.
CommandLine
)
pflag
.
Parse
()
pflag
.
Parse
()
}
}
pkg/util/pflag_import.go
deleted
100644 → 0
View file @
681ee126
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
util
import
(
"flag"
"reflect"
"strings"
"github.com/spf13/pflag"
)
// flagValueWrapper implements pflag.Value around a flag.Value. The main
// difference here is the addition of the Type method that returns a string
// name of the type. As this is generally unknown, we approximate that with
// reflection.
type
flagValueWrapper
struct
{
inner
flag
.
Value
flagType
string
}
func
wrapFlagValue
(
v
flag
.
Value
)
pflag
.
Value
{
// If the flag.Value happens to also be a pflag.Value, just use it directly.
if
pv
,
ok
:=
v
.
(
pflag
.
Value
);
ok
{
return
pv
}
pv
:=
&
flagValueWrapper
{
inner
:
v
,
}
t
:=
reflect
.
TypeOf
(
v
)
if
t
.
Kind
()
==
reflect
.
Interface
||
t
.
Kind
()
==
reflect
.
Ptr
{
t
=
t
.
Elem
()
}
pv
.
flagType
=
t
.
Name
()
pv
.
flagType
=
strings
.
TrimSuffix
(
pv
.
flagType
,
"Value"
)
return
pv
}
func
(
v
*
flagValueWrapper
)
String
()
string
{
return
v
.
inner
.
String
()
}
func
(
v
*
flagValueWrapper
)
Set
(
s
string
)
error
{
return
v
.
inner
.
Set
(
s
)
}
func
(
v
*
flagValueWrapper
)
Type
()
string
{
return
v
.
flagType
}
type
boolFlag
interface
{
flag
.
Value
IsBoolFlag
()
bool
}
func
(
v
*
flagValueWrapper
)
IsBoolFlag
()
bool
{
if
bv
,
ok
:=
v
.
inner
.
(
boolFlag
);
ok
{
return
bv
.
IsBoolFlag
()
}
return
false
}
// Imports a 'flag.Flag' into a 'pflag.FlagSet'. The "short" option is unset
// and the type is inferred using reflection.
func
addFlagToPFlagSet
(
f
*
flag
.
Flag
,
fs
*
pflag
.
FlagSet
)
{
if
fs
.
Lookup
(
f
.
Name
)
==
nil
{
fs
.
Var
(
wrapFlagValue
(
f
.
Value
),
f
.
Name
,
f
.
Usage
)
}
}
// AddFlagSetToPFlagSet adds all of the flags in a 'flag.FlagSet' package flags to a 'pflag.FlagSet'.
func
AddFlagSetToPFlagSet
(
fsIn
*
flag
.
FlagSet
,
fsOut
*
pflag
.
FlagSet
)
{
fsIn
.
VisitAll
(
func
(
f
*
flag
.
Flag
)
{
addFlagToPFlagSet
(
f
,
fsOut
)
})
}
// AddAllFlagsToPFlags adds all of the top level 'flag' package flags to the top level 'pflag' flags.
func
AddAllFlagsToPFlags
()
{
AddFlagSetToPFlagSet
(
flag
.
CommandLine
,
pflag
.
CommandLine
)
}
// AddPFlagSetToPFlagSet merges the flags of fsFrom into fsTo.
func
AddPFlagSetToPFlagSet
(
fsFrom
*
pflag
.
FlagSet
,
fsTo
*
pflag
.
FlagSet
)
{
if
fsFrom
!=
nil
&&
fsTo
!=
nil
{
fsFrom
.
VisitAll
(
func
(
f
*
pflag
.
Flag
)
{
if
fsTo
.
Lookup
(
f
.
Name
)
==
nil
{
fsTo
.
AddFlag
(
f
)
}
})
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment