/etc/bash_completion.d/wajig is in wajig 2.13.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | have grep-status && {
_comp_dpkg_installed_packages()
{
grep-status -P -e "^$1" -a -FStatus 'install ok installed' -n -s Package
}
} || {
_comp_dpkg_installed_packages()
{
command grep -A 1 "Package: $1" /var/lib/dpkg/status | \
command grep -B 1 -Ee "ok installed|half-installed|unpacked| \
half-configured" \
-Ee "^Essential: yes" | \
command grep "Package: $1" | cut -d\ -f2
}
}
have grep-status && {
_comp_dpkg_hold_packages()
{
grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package
}
} || {
_comp_dpkg_hold_packages()
{
command grep -B 2 'hold' /var/lib/dpkg/status | \
command grep "Package: $1" | cut -d\ -f2
}
}
have wajig &&
_wajig()
{
local cur dashoptions prev special i
COMPREPLY=()
_get_comp_words_by_ref cur prev
dashoptions='-h --help -V --version'
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
if [[ ${COMP_WORDS[i]} == \
@(addcdrom|addrepo|aptlog|auto-alts|auto-clean|auto-download|autoremove|build|
build-deps|changelog|clean|contents|daily-upgrade|dependents|describe|
describe-new|details|dist-upgrade|download|editsources|extract|
fix-configure|fix-install|fix-missing|force|hold|info|init|install|
install-suggested|integrity|large|lastupdate|list-alternatives|
list-cache|list-commands|list-daemons|list-files|list-hold|list-installed|
list-log|list-names|list-packages|list-scripts|list-section|list-sections|
list-status|madison|move|new|new-detail|news|new-upgrades|nonfree|
orphans|policy|purge|purge-orphans|purge-removed|rbuilddeps|readme|
rec-download|recommended|reconfigure|reinstall|reload|remove|
remove-orphans|repackage|reportbug|restart|rpm2deb|rpminstall|
search|searchapt|show|sizes|snapshot|source|start|status|status-match|
stop|tasksel|todo|toupgrade|tutorial|unhold|unofficial|
update|update-alternatives|update-pci-ids|update-usb-ids|upgrade|
upgrade-security|verify|versions|which-package) ]];
then special=${COMP_WORDS[i]}
fi
done
if [[ -n "$special" ]]; then
case $special in
install|distupgrade|download|show|changelog|builddeps|dependents|describe|details|policy|recdownload)
COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
if [[ "$special" == "install" ]]; then
_filedir
fi
return 0
;;
purge|remove|reinstall|listinstalled|hold|news|readme|recommended|reconfigure|reload|repackage|*start|status|stop|todo|verify)
COMPREPLY=( $( _comp_dpkg_installed_packages "$cur" ) )
return 0
;;
unhold)
COMPREPLY=( $( _comp_dpkg_hold_packages "$cur" ) )
return 0
;;
contents|extract|info|rpm2deb|rpminstall)
_filedir
;;
esac
fi
case $prev in
# don't complete anything if these options are found
autoclean|clean|search|upgrade|update)
return 0
;;
-S)
_filedir
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W "$dashoptions" -- "$cur" ) )
elif [[ -z "$special" ]]; then
commands=(addcdrom addrepo aptlog auto-alts auto-clean auto-download auto-remove
build build-deps changelog clean contents daily-upgrade dependents
describe describe-new details dist-upgrade download editsources
extract fix-configure fix-install fix-missing force hold info init
install install-suggested integrity large lastupdate list-alternatives
list-cache list-commands list-daemons list-files list-hold list-installed
list-log list-names list-packages list-scripts
list-section list-sections list-status
madison move new new-detail news new-upgrades nonfree orphans
policy purge purge-orphans purge-removed rbuilddeps readme
rec-download recommended reconfigure reinstall reload remove
remove-orphans repackage reportbug restart rpm2deb rpminstall
search searchapt show sizes snapshot source start status
status-match stop tasksel todo toupgrade tutorial unhold
unofficial update update-alternatives update-pci-ids update-usb-ids
upgrade upgrade-security verify versions which-package)
local option oldNoCaseMatch=$(shopt -p nocasematch)
shopt -s nocasematch
COMPREPLY=( $( for command in "${commands[@]}"; do
[[ ${command:0:${#cur}} == "$cur" ]] && printf '%s\n' $command
done ) )
eval "$oldNoCaseMatch" 2> /dev/null
fi
return 0
}
complete -F _wajig wajig
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh
|