iSulad/0075-Added-autocomplete-in-isula-command-line-mode.patch
WangFengTu b1ffa045c4 iSulad: sync with upstream iSulad
Signed-off-by: WangFengTu <wangfengtu@huawei.com>
2021-05-18 14:48:15 +08:00

141 lines
3.3 KiB
Diff

From 5f1fe5416c56846da50dd88c7423e80ec8514f5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=B9=E7=A7=80=E6=B1=9F?= <yinxiujiang@kylinos.cn>
Date: Thu, 15 Apr 2021 16:23:30 +0800
Subject: [PATCH 075/104] Added autocomplete in isula command line mode
---
iSulad.spec | 5 ++
src/contrib/completion/isula | 90 ++++++++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+)
create mode 100644 src/contrib/completion/isula
diff --git a/iSulad.spec b/iSulad.spec
index eca7ddd8..532af2dc 100644
--- a/iSulad.spec
+++ b/iSulad.spec
@@ -107,6 +107,8 @@ install -d $RPM_BUILD_ROOT/%{_initddir}
install -p -m 0640 ../src/contrib/init/isulad.init $RPM_BUILD_ROOT/%{_initddir}/isulad.init
%endif
+install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions
+install -p -m 0644 ../src/contrib/completion/isula $RPM_BUILD_ROOT/usr/share/bash-completion/completions/isula
%clean
rm -rf %{buildroot}
@@ -125,6 +127,8 @@ fi
fi
%post
+source /usr/share/bash-completion/completions/isula
+
if ! getent group isula > /dev/null; then
groupadd --system isula
fi
@@ -211,6 +215,7 @@ fi
%else
%config(noreplace,missingok) %{_initddir}/isulad.init
%endif
+/usr/share/bash-completion/completions/isula
%changelog
* Tue Sep 10 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.0.5-20200910.140350.git72990229
diff --git a/src/contrib/completion/isula b/src/contrib/completion/isula
new file mode 100644
index 00000000..305c5150
--- /dev/null
+++ b/src/contrib/completion/isula
@@ -0,0 +1,90 @@
+#!/usr/bin/env bash
+_isula_isula() {
+ local isula_management_commands=(
+ volume
+ )
+
+ local isula_commands=(
+ attach
+ cp
+ create
+ events
+ exec
+ export
+ images
+ import
+ info
+ inspect
+ kill
+ load
+ login
+ logout
+ logs
+ pause
+ ps
+ pull
+ rename
+ restart
+ rm
+ rmi
+ run
+ start
+ stats
+ stop
+ tag
+ top
+ unpause
+ update
+ version
+ wait
+ )
+
+ local commands=(${isula_management_commands[*]} ${isula_commands[*]})
+ local common_options=(
+ --help
+ -H --host
+ --tls
+ --tlscacert
+ --tlscert
+ --tlskey
+ --tlsverify
+ --version
+ )
+
+ case "$prev" in
+ #todo.....
+ esac
+
+ case "$cur" in
+ -*)
+ COMPREPLY=( $( compgen -W "${common_options[*]}" -- "$cur" ) )
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W "${commands[*]}" -- "$cur" ) )
+ ;;
+ esac
+}
+
+
+_isula() {
+ COMPREPLY=()
+
+ #An array variable consisting of the individual words in the current command line
+ local words=(${COMP_WORDS[*]})
+ #An index into ${word} of the word containing the current cursor position
+ local cword=$COMP_CWORD
+ local cur="${words[$cword]}"
+ local prev="${words[$cword-1]}"
+ local command='isula'
+
+ local completions_func=_isula_${command//-/_}
+
+ #The completion of the secondary command will be added later
+ if [ $cword -lt 2 ] ; then
+ declare -F $completions_func >/dev/null && $completions_func
+ fi
+
+ return 0
+}
+
+complete -F _isula isula
--
2.25.1