From 1e8a27350ee4dee6fc88b459d13ffa909f96b53d Mon Sep 17 00:00:00 2001 From: coldmoment Date: Mon, 5 Sep 2016 11:13:20 +0800 Subject: [PATCH] Add magnum.bash_completion This can support the function of autocomplete for magnum's commands Closes-Bug: #1614853 Change-Id: Icdc50fbefa5ec46e608567895b1f74c26c0f5992 --- tools/magnum.bash_completion | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tools/magnum.bash_completion diff --git a/tools/magnum.bash_completion b/tools/magnum.bash_completion new file mode 100644 index 00000000..4e5002fe --- /dev/null +++ b/tools/magnum.bash_completion @@ -0,0 +1,27 @@ +_magnum_opts="" # lazy init +_magnum_flags="" # lazy init +_magnum_opts_exp="" # lazy init +_magnum() +{ + local cur prev nbc cflags + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + if [ "x$_magnum_opts" == "x" ] ; then + nbc="`magnum bash-completion | sed -e "s/ *-h */ /" -e "s/ *-i */ /"`" + _magnum_opts="`echo "$nbc" | sed -e "s/--[a-z0-9_-]*//g" -e "s/ */ /g"`" + _magnum_flags="`echo " $nbc" | sed -e "s/ [^-][^-][a-z0-9_-]*//g" -e "s/ */ /g"`" + _magnum_opts_exp="`echo "$_magnum_opts" | tr ' ' '|'`" + fi + + if [[ " ${COMP_WORDS[@]} " =~ " "($_magnum_opts_exp)" " && "$prev" != "help" ]] ; then + COMPLETION_CACHE=~/.magnumclient/*/*-cache + cflags="$_magnum_flags "$(cat $COMPLETION_CACHE 2> /dev/null | tr '\n' ' ') + COMPREPLY=($(compgen -W "${cflags}" -- ${cur})) + else + COMPREPLY=($(compgen -W "${_magnum_opts}" -- ${cur})) + fi + return 0 +} +complete -F _magnum magnum