From 46eb607677467d7b17fbc70e2cfc71a47a8b62d9 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Mon, 24 Aug 2015 05:25:48 -0700 Subject: [PATCH] Enable kubectl exec pod name bash completion --- contrib/completions/bash/kubectl | 19 ++++++++++++++----- pkg/kubectl/cmd/cmd.go | 19 ++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/contrib/completions/bash/kubectl b/contrib/completions/bash/kubectl index 8f34e4890e5..107825c902d 100644 --- a/contrib/completions/bash/kubectl +++ b/contrib/completions/bash/kubectl @@ -181,6 +181,11 @@ __kubectl_get_resource() __kubectl_parse_get "${nouns[${#nouns[@]} -1]}" } +__kubectl_get_resource_pod() +{ + __kubectl_parse_get "pod" +} + # $1 is the name of the pod we want to get the list of containers inside __kubectl_get_containers() { @@ -213,13 +218,17 @@ __kubectl_require_pod_and_container() __custom_func() { case ${last_command} in kubectl_get | kubectl_describe | kubectl_delete | kubectl_label | kubectl_stop) - __kubectl_get_resource + __kubectl_get_resource + return + ;; + kubectl_logs) + __kubectl_require_pod_and_container + return + ;; + kubectl_exec) + __kubectl_get_resource_pod return ;; - kubectl_logs) - __kubectl_require_pod_and_container - return - ;; *) ;; esac diff --git a/pkg/kubectl/cmd/cmd.go b/pkg/kubectl/cmd/cmd.go index 8f11f42d6a9..53c191b5a9a 100644 --- a/pkg/kubectl/cmd/cmd.go +++ b/pkg/kubectl/cmd/cmd.go @@ -47,6 +47,11 @@ __kubectl_get_resource() __kubectl_parse_get "${nouns[${#nouns[@]} -1]}" } +__kubectl_get_resource_pod() +{ + __kubectl_parse_get "pod" +} + # $1 is the name of the pod we want to get the list of containers inside __kubectl_get_containers() { @@ -79,13 +84,17 @@ __kubectl_require_pod_and_container() __custom_func() { case ${last_command} in kubectl_get | kubectl_describe | kubectl_delete | kubectl_label | kubectl_stop) - __kubectl_get_resource + __kubectl_get_resource + return + ;; + kubectl_logs) + __kubectl_require_pod_and_container + return + ;; + kubectl_exec) + __kubectl_get_resource_pod return ;; - kubectl_logs) - __kubectl_require_pod_and_container - return - ;; *) ;; esac