Merge pull request #13482 from jlowdermilk/resource-builder-err-msg

Print recognized file extensions in resource builder error
pull/6/head
Piotr Szczesniak 2015-09-04 13:45:41 +02:00
commit de92c9bac2
3 changed files with 36 additions and 28 deletions

View File

@ -256,10 +256,10 @@ _kubectl_get()
flags+=("--all-namespaces")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--label-columns=")
@ -312,10 +312,10 @@ _kubectl_describe()
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--selector=")
@ -349,10 +349,10 @@ _kubectl_create()
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--output=")
@ -378,10 +378,10 @@ _kubectl_replace()
flags+=("--cascade")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--force")
flags+=("--grace-period=")
flags+=("--help")
@ -409,10 +409,10 @@ _kubectl_patch()
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--output=")
@ -440,10 +440,10 @@ _kubectl_delete()
flags+=("--cascade")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--grace-period=")
flags+=("--help")
flags+=("-h")
@ -530,10 +530,10 @@ _kubectl_rolling-update()
flags+=("--dry-run")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--image=")
@ -572,10 +572,10 @@ _kubectl_scale()
flags+=("--current-replicas=")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--output=")
@ -743,10 +743,10 @@ _kubectl_stop()
flags+=("--all")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--grace-period=")
flags+=("--help")
flags+=("-h")
@ -777,10 +777,10 @@ _kubectl_expose()
flags+=("--external-ip=")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--generator=")
flags+=("--help")
flags+=("-h")
@ -822,10 +822,10 @@ _kubectl_label()
flags+=("--all")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--no-headers")
@ -876,10 +876,10 @@ _kubectl_annotate()
flags+=("--all")
flags+=("--filename=")
flags_with_completion+=("--filename")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
two_word_flags+=("-f")
flags_with_completion+=("-f")
flags_completion+=("__handle_filename_extension_flag json|yaml|yml")
flags_completion+=("__handle_filename_extension_flag json|stdin|yaml|yml")
flags+=("--help")
flags+=("-h")
flags+=("--overwrite")

View File

@ -19,12 +19,18 @@ limitations under the License.
package kubectl
import (
"strings"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/resource"
)
func AddJsonFilenameFlag(cmd *cobra.Command, value *[]string, usage string) {
cmd.Flags().StringSliceVarP(value, "filename", "f", *value, usage)
annotations := []string{"json", "yaml", "yml"}
annotations := []string{}
for _, ext := range resource.FileExtensions {
annotations = append(annotations, strings.TrimLeft(ext, "."))
}
cmd.Flags().SetAnnotation("filename", cobra.BashCompFilenameExt, annotations)
}

View File

@ -32,6 +32,8 @@ import (
"k8s.io/kubernetes/pkg/util/errors"
)
var FileExtensions = []string{".json", ".stdin", ".yaml", ".yml"}
// Builder provides convenience functions for taking arguments and parameters
// from the command line and converting them to a list of resources to iterate
// over using the Visitor interface.
@ -164,7 +166,7 @@ func (b *Builder) Path(paths ...string) *Builder {
continue
}
visitors, err := ExpandPathsToFileVisitors(b.mapper, p, false, []string{".json", ".stdin", ".yaml", ".yml"}, b.schema)
visitors, err := ExpandPathsToFileVisitors(b.mapper, p, false, FileExtensions, b.schema)
if err != nil {
b.errs = append(b.errs, fmt.Errorf("error reading %q: %v", p, err))
}
@ -646,7 +648,7 @@ func (b *Builder) visitorResult() *Result {
return &Result{singular: singular, visitor: visitors, sources: b.paths}
}
return &Result{err: fmt.Errorf("you must provide one or more resources by argument or filename")}
return &Result{err: fmt.Errorf("you must provide one or more resources by argument or filename (%s)", strings.Join(FileExtensions, "|"))}
}
// Do returns a Result object with a Visitor for the resources identified by the Builder.