Bug 18562: Tab completion in bash
This patch adds the fancy tab completion in bash. To test: - Run: $ source debian/koha-common.bash-completion $ sudo koha-sip <tab> - Play with all the options => SUCCESS: The combinations make sense (e.g. only SIP-enabled instances are completed for --start, --stop, --restart, -v and --verbose are not offered if the other one is already in there, --enable only applies to SIP-disabled instances, etc). - Sign off :-D Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
parent
713f873626
commit
74b6a659e5
1 changed files with 38 additions and 0 deletions
38
debian/koha-common.bash-completion
vendored
38
debian/koha-common.bash-completion
vendored
|
@ -303,6 +303,44 @@ _koha-zebra()
|
||||||
}
|
}
|
||||||
complete -F _koha-zebra koha-zebra
|
complete -F _koha-zebra koha-zebra
|
||||||
|
|
||||||
|
_koha-sip()
|
||||||
|
{
|
||||||
|
local cur opts substract
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
_get_comp_words_by_ref cur
|
||||||
|
opts="--start --stop --restart --status --enable --verbose -v --help -h"
|
||||||
|
|
||||||
|
# Build a list of the already used option switches
|
||||||
|
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
||||||
|
if [[ ${COMP_WORDS[i]} == -* ]]; then
|
||||||
|
case ${COMP_WORDS[i]} in
|
||||||
|
--start) _koha_sip_enabled_instances ; return 0 ;;
|
||||||
|
--stop) _koha_sip_enabled_instances ; return 0 ;;
|
||||||
|
--restart) _koha_sip_enabled_instances ; return 0 ;;
|
||||||
|
--status) _koha_sip_enabled_instances ; return 0 ;;
|
||||||
|
--enable) _koha_sip_disabled ; return 0 ;;
|
||||||
|
--help) COMPREPLY=() ; return 0 ;; # no more completions
|
||||||
|
-h) COMPREPLY=() ; return 0 ;; # no more completions
|
||||||
|
--verbose) # filter the other quiet switches and go on
|
||||||
|
substract="$substract -e -q"; ;;
|
||||||
|
-v) # filter the other quiet switches and go on
|
||||||
|
substract="$substract -e --verbose"; ;;
|
||||||
|
esac
|
||||||
|
substract="$substract -e ${COMP_WORDS[i]}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$substract" != "" ]]; then
|
||||||
|
opts=$( echo $opts | sed -e 's/ /\n/g' | grep -v -x $substract )
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMPREPLY=( $(compgen -W "$opts" -- $cur ) )
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
complete -F _koha-sip koha-sip
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
# sh-basic-offset: 4
|
# sh-basic-offset: 4
|
||||||
|
|
Loading…
Reference in a new issue