func AddFlags(fs *pflag.FlagSet, kubectlSubCmd string) { cmd := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr) fs.AddFlagSet(cmd.LocalFlags()) if kubectlSubCmd == "" { return } for _, child := range cmd.Commands() { if child.Name() == kubectlSubCmd { fs.AddFlagSet(child.LocalFlags()) return } } }
// BindFlags adds any flags that are common to all kubectl sub commands. func (f *Factory) BindFlags(flags *pflag.FlagSet) { // Merge factory's flags flags.AddFlagSet(f.flags) // Globally persistent flags across all subcommands. // TODO Change flag names to consts to allow safer lookup from subcommands. // TODO Add a verbose flag that turns on glog logging. Probably need a way // to do that automatically for every subcommand. flags.BoolVar(&f.clients.matchVersion, FlagMatchBinaryVersion, false, "Require server version to match client version") // Normalize all flags that are coming from other packages or pre-configurations // a.k.a. change all "_" to "-". e.g. glog package flags.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) }
// BindFlags adds any flags that are common to all kubectl sub commands. func (f *Factory) BindFlags(flags *pflag.FlagSet) { // any flags defined by external projects (not part of pflags) flags.AddGoFlagSet(flag.CommandLine) // Hack for global access to validation flag. // TODO: Refactor out after configuration flag overhaul. if f.flags.Lookup("validate") == nil { f.flags.Bool("validate", false, "If true, use a schema to validate the input before sending it") } // Merge factory's flags flags.AddFlagSet(f.flags) // Globally persistent flags across all subcommands. // TODO Change flag names to consts to allow safer lookup from subcommands. // TODO Add a verbose flag that turns on glog logging. Probably need a way // to do that automatically for every subcommand. flags.BoolVar(&f.clients.matchVersion, FlagMatchBinaryVersion, false, "Require server version to match client version") // Normalize all flags that are coming from other packages or pre-configurations // a.k.a. change all "_" to "-". e.g. glog package flags.SetNormalizeFunc(util.WordSepNormalizeFunc) }