// AddLabelsToColumnsFlag added a user flag to print resource labels into columns. Currently used in kubectl get command func AddLabelsToColumnsFlag(cmd *cobra.Command, value *util.StringList, usage string) { flag := &pflag.Flag{ Name: "label-columns", Shorthand: "L", Usage: usage, Value: value, DefValue: value.String(), } cmd.Flags().AddFlag(flag) }
func AddJsonFilenameFlag(cmd *cobra.Command, value *util.StringList, usage string) { annotations := []string{"json", "yaml", "yml"} annotation := make(map[string][]string) annotation[cobra.BashCompFilenameExt] = annotations flag := &pflag.Flag{ Name: "filename", Shorthand: "f", Usage: usage, Value: value, DefValue: value.String(), Annotations: annotation, } cmd.Flags().AddFlag(flag) }
// injectUserVars injects user specified variables into the Template func injectUserVars(cmd *cobra.Command, t *api.Template) { values := util.StringList{} values.Set(kcmdutil.GetFlagString(cmd, "value")) for _, keypair := range values { p := strings.SplitN(keypair, "=", 2) if len(p) != 2 { fmt.Fprintf(cmd.Out(), "invalid parameter assignment in %q: %q\n", t.Name, keypair) continue } if v := template.GetParameterByName(t, p[0]); v != nil { v.Value = p[1] v.Generate = "" template.AddParameter(t, *v) } else { fmt.Fprintf(cmd.Out(), "unknown parameter name %q\n", p[0]) } } }