You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/02/19 11:12:42 UTC
[camel-k] branch master updated: feat: add command completion for
connect flag
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push:
new 3b6a004 feat: add command completion for connect flag
3b6a004 is described below
commit 3b6a004e318b13f1ce990e882e87beaab85e6639
Author: John Poth <po...@gmail.com>
AuthorDate: Thu Feb 18 18:02:00 2021 +0100
feat: add command completion for connect flag
---
pkg/cmd/completion_bash.go | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/pkg/cmd/completion_bash.go b/pkg/cmd/completion_bash.go
index 929ab08..6d554c1 100644
--- a/pkg/cmd/completion_bash.go
+++ b/pkg/cmd/completion_bash.go
@@ -89,6 +89,32 @@ __kamel_deletion_policy() {
COMPREPLY=( $( compgen -W "${type_list}" -- "$cur") )
}
+__kamel_kubectl_get_servicebinding() {
+ local template
+ local template_gvkn
+ local kubectl_out
+ local service_names
+ local services_list
+
+ template="{{ range .items }}{{ .metadata.name }} {{ end }}"
+ template_gvkn="{{ range .items }}{{ .kind }}/{{ .apiVersion }}/{{ .metadata.name }} {{ end }}"
+ if kubectl_out=$(kubectl get -o template --template="${template}" crd -l service.binding/provisioned-service=true 2>/dev/null); then
+ kubectl_out="${kubectl_out// /,}"
+ service_names="${kubectl_out}servicebinding"
+ if kubectl_out=$(kubectl get -o template --template="${template_gvkn}" ${service_names} 2>/dev/null); then
+ for resource in $kubectl_out
+ do
+ name=$(echo ${resource} | cut -d'/' -f 4)
+ version=$(echo ${resource} | cut -d'/' -f 3)
+ group=$(echo ${resource} | cut -d'/' -f 2)
+ kind=$(echo ${resource} | cut -d'/' -f 1)
+ services_list="${services_list} ${kind}.${version}.${group}/${name}"
+ done
+ COMPREPLY=( $( compgen -W "${services_list[*]}" -- "$cur" ) )
+ fi
+ fi
+}
+
__kamel_kubectl_get_configmap() {
local template
local kubectl_out
@@ -252,6 +278,13 @@ func configureKnownBashCompletions(command *cobra.Command) {
cobra.BashCompCustom: {"__kamel_deletion_policy"},
},
)
+ configureBashAnnotationForFlag(
+ command,
+ "connect",
+ map[string][]string{
+ cobra.BashCompCustom: {"__kamel_kubectl_get_servicebinding"},
+ },
+ )
}
func configureBashAnnotationForFlag(command *cobra.Command, flagName string, annotations map[string][]string) {