diff options
Diffstat (limited to 'plugins/debian/debian.plugin.zsh')
-rw-r--r-- | plugins/debian/debian.plugin.zsh | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..1e15487ba 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -1,19 +1,20 @@ # Authors: # https://github.com/AlexBio # https://github.com/dbb +# https://github.com/Mappleconfusers # # Debian-related zsh aliases and functions for zsh # Use aptitude if installed, or apt-get if not. # You can just set apt_pref='apt-get' to override it. -if [[ -e $( which aptitude ) ]]; then +if [[ -e $( which -p aptitude 2>&1 ) ]]; then apt_pref='aptitude' else apt_pref='apt-get' fi # Use sudo by default if it's installed -if [[ -e $( which sudo ) ]]; then +if [[ -e $( which -p sudo 2>&1 ) ]]; then use_sudo=1 fi @@ -21,7 +22,7 @@ fi # These are for more obscure uses of apt-get and aptitude that aren't covered # below. alias ag='apt-get' -alias at='aptitude' +alias ap='aptitude' # Some self-explanatory aliases alias acs="apt-cache search" @@ -35,7 +36,7 @@ alias afs='apt-file search --regexp' # These are apt-get only alias asrc='apt-get source' -alias ap='apt-cache policy' +alias app='apt-cache policy' # superuser operations ###################################################### if [[ $use_sudo -eq 1 ]]; then @@ -56,12 +57,13 @@ if [[ $use_sudo -eq 1 ]]; then alias ar='sudo $apt_pref remove' # apt-get only - alias ads='sudo $apt_pref dselect-upgrade' + alias ads='sudo apt-get dselect-upgrade' # Install all .deb files in the current directory. # Warning: you will need to put the glob in single quotes if you use: # glob_subst - alias di='sudo dpkg -i ./*.deb' + alias dia='sudo dpkg -i ./*.deb' + alias di='sudo dpkg -i' # Remove ALL kernel images and headers EXCEPT the one in use alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \ @@ -100,13 +102,46 @@ else # Install all .deb files in the current directory # Assumes glob_subst is off - alias di='su -lc "dpkg -i ./*.deb" root' + alias dia='su -lc "dpkg -i ./*.deb" root' + alias di='su -lc "dpkg -i" root' # Remove ALL kernel images and headers EXCEPT the one in use alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \ ?not(~n`uname -r`))'\'' root' fi +# Completion ################################################################ + +# +# Registers a compdef for $1 that calls $apt_pref with the commands $2 +# To do that it creates a new completion function called _apt_pref_$2 +# +apt_pref_compdef() { + local f fb + f="_apt_pref_${2}" + + eval "function ${f}() { + shift words; + service=\"\$apt_pref\"; + words=(\"\$apt_pref\" '$2' \$words); + ((CURRENT++)) + test \"\${apt_pref}\" = 'aptitude' && _aptitude || _apt + }" + + compdef "$f" "$1" +} + +apt_pref_compdef aac "autoclean" +apt_pref_compdef abd "build-dep" +apt_pref_compdef ac "clean" +apt_pref_compdef ad "update" +apt_pref_compdef afu "update" +apt_pref_compdef ag "upgrade" +apt_pref_compdef ai "install" +apt_pref_compdef ail "install" +apt_pref_compdef ap "purge" +apt_pref_compdef ar "remove" +apt_pref_compdef ads "dselect-upgrade" # Misc. ##################################################################### # print all installed packages |