Update kube to support new pflag/cobra

This commit is contained in:
Eric Paris
2015-04-29 11:26:30 -04:00
parent b7217a33ab
commit a17a26643b
5 changed files with 18 additions and 5 deletions

View File

@@ -70,7 +70,7 @@ func (hk *HyperKube) Flags() *pflag.FlagSet {
if hk.baseFlags == nil { if hk.baseFlags == nil {
hk.baseFlags = pflag.NewFlagSet(hk.Name, pflag.ContinueOnError) hk.baseFlags = pflag.NewFlagSet(hk.Name, pflag.ContinueOnError)
hk.baseFlags.SetOutput(ioutil.Discard) hk.baseFlags.SetOutput(ioutil.Discard)
hk.baseFlags.SetWordSeparators([]string{"-", "_"}) hk.baseFlags.SetNormalizeFunc(util.WordSepNormalizeFunc)
hk.baseFlags.BoolVarP(&hk.helpFlagVal, "help", "h", false, "help for "+hk.Name) hk.baseFlags.BoolVarP(&hk.helpFlagVal, "help", "h", false, "help for "+hk.Name)
// These will add all of the "global" flags (defined with both the // These will add all of the "global" flags (defined with both the

View File

@@ -68,7 +68,7 @@ func (s *Server) Flags() *pflag.FlagSet {
if s.flags == nil { if s.flags == nil {
s.flags = pflag.NewFlagSet(s.Name(), pflag.ContinueOnError) s.flags = pflag.NewFlagSet(s.Name(), pflag.ContinueOnError)
s.flags.SetOutput(ioutil.Discard) s.flags.SetOutput(ioutil.Discard)
s.flags.SetWordSeparators([]string{"-", "_"}) s.flags.SetNormalizeFunc(util.WordSepNormalizeFunc)
} }
return s.flags return s.flags
} }

View File

@@ -31,6 +31,7 @@ import (
_ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1"
_ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2"
_ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/ghodss/yaml" "github.com/ghodss/yaml"
flag "github.com/spf13/pflag" flag "github.com/spf13/pflag"
@@ -55,7 +56,7 @@ func isYAML(data []byte) bool {
func main() { func main() {
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())
flag.CommandLine.SetWordSeparators([]string{"-", "_"}) flag.CommandLine.SetNormalizeFunc(util.WordSepNormalizeFunc)
flag.Parse() flag.Parse()
if *rewrite != "" { if *rewrite != "" {

View File

@@ -86,7 +86,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
mapper := kubectl.ShortcutExpander{latest.RESTMapper} mapper := kubectl.ShortcutExpander{latest.RESTMapper}
flags := pflag.NewFlagSet("", pflag.ContinueOnError) flags := pflag.NewFlagSet("", pflag.ContinueOnError)
flags.SetWordSeparators([]string{"-", "_"}) flags.SetNormalizeFunc(util.WordSepNormalizeFunc)
clientConfig := optionalClientConfig clientConfig := optionalClientConfig
if optionalClientConfig == nil { if optionalClientConfig == nil {

View File

@@ -16,11 +16,23 @@ limitations under the License.
package util package util
import "strings"
import "github.com/spf13/pflag" import "github.com/spf13/pflag"
func WordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
from := []string{"-", "_"}
to := "."
for _, sep := range from {
name = strings.Replace(name, sep, to, -1)
}
// Type convert to indicate normalization has been done.
return pflag.NormalizedName(name)
}
// InitFlags normalizes and parses the command line flags // InitFlags normalizes and parses the command line flags
func InitFlags() { func InitFlags() {
pflag.CommandLine.SetWordSeparators([]string{"-", "_"}) pflag.CommandLine.SetNormalizeFunc(WordSepNormalizeFunc)
AddAllFlagsToPFlags() AddAllFlagsToPFlags()
pflag.Parse() pflag.Parse()
} }