index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Nezmer <git@nezmer.info> | 2010-10-12 00:20:57 +0300 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-10-11 20:29:22 -0500 |
commit | bce3c8efc7a2d187984aa0e7037307b99c217fd7 (patch) | |
tree | 8eb9ead2af2a61ad0764b08e804d8471b975ce01 /contrib/bash_completion | |
parent | 7d937772313a796f4c0bff76bf1bd7d78f8ccb5a (diff) |
-rw-r--r-- | contrib/bash_completion | 115 |
diff --git a/contrib/bash_completion b/contrib/bash_completion deleted file mode 100644 index bdc4754a..00000000 --- a/contrib/bash_completion +++ /dev/null @@ -1,115 +0,0 @@ -# This file is in the public domain. - -_arch_compgen() { - local i r - COMPREPLY=($(compgen -W '$*' -- "$cur")) - for ((i=1; i < ${#COMP_WORDS[@]}-1; i++)); do - for r in ${!COMPREPLY[@]}; do - if [[ ${COMP_WORDS[i]} = ${COMPREPLY[r]} ]]; then - unset 'COMPREPLY[r]'; break - fi - done - done -} - -_arch_ptr2comp() { - local list= x y - for x; do - for y in '0 --' '1 -'; do - eval 'set -- ${'$x'[${y% *}]}' - list+=\ ${@/#/${y#* }} - done - done - _arch_compgen $list -} - -_arch_incomp() { - local r="\s-(-${1#* }\s|\w*${1% *})"; [[ $COMP_LINE =~ $r ]] -} - -_makepkg() { - local cur opts prev - COMPREPLY=() - cur=$(_get_cword) - prev=${COMP_WORDS[COMP_CWORD-1]} - if [[ $cur = -* && ! $prev =~ ^-(-(cleancache|config|help)$|\w*[Chp]) ]]; then - opts=('allsource asroot clean cleancache config force geninteg help holdver - ignorearch install log nobuild nocolor noconfirm nodeps noextract - noprogressbar pkg repackage rmdeps skipinteg source syncdeps' - 'A C L R c d e f g h i m o p r s') - _arch_ptr2comp opts - fi - true -} - -_pacman_pkg() { - _arch_compgen "$( - if [[ $2 ]]; then - \pacman -$1 | \cut -d' ' -f1 | \sort -u - else - \pacman -$1 - fi - )" -} - -_pacman() { - local common core cur database prev query remove sync upgrade o - COMPREPLY=() - cur=$(_get_cword) - prev=${COMP_WORDS[COMP_CWORD-1]} - database=('asdeps asexplicit') - query=('changelog check deps explicit file foreign groups info list owns - search unrequired upgrades' 'c e g i k l m o p s t u') - remove=('cascade dbonly nodeps nosave print recursive unneeded' 'c k n p s u') - sync=('asdeps asexplicit clean downloadonly force groups ignore ignoregroup - info list needed nodeps print refresh search sysupgrade' - 'c f g i l p s u w y') - upgrade=('asdeps asexplicit force nodeps print' 'f p') - common=('arch cachedir config dbpath debug help logfile noconfirm - noprogressbar noscriptlet quiet root verbose' 'b d h q r v') - core=('database help query remove sync upgrade version' 'D Q R S U V h') - - for o in 'D database' 'Q query' 'R remove' 'S sync' 'U upgrade'; do - _arch_incomp "$o" && break - done - - if [[ $? != 0 ]]; then - _arch_ptr2comp core - elif [[ ! $prev =~ ^-\w*[Vbhr] && - ! $prev = --@(cachedir|config|dbpath|help|logfile|root|version) ]] - then - [[ $cur = -* ]] && _arch_ptr2comp ${o#* } common || - case ${o% *} in - D|R) - _pacman_pkg Qq;; - Q) - { _arch_incomp 'g groups' && _pacman_pkg Qg sort; } || - { _arch_incomp 'p file' && _pacman_file; } || - _arch_incomp 'o owns' || _arch_incomp 'u upgrades' || - _pacman_pkg Qq;; - S) - { _arch_incomp 'g groups' && _pacman_pkg Sg; } || - { _arch_incomp 'l list' && _pacman_pkg Sl sort; } || - _pacman_pkg Slq;; - U) - _pacman_file;; - esac - fi - true -} - -if [[ $(type -t compopt) = "builtin" ]]; then - _pacman_file() { - compopt -o filenames; _filedir 'pkg.tar.*' - } - complete -F _pacman -o default pacman -else - _pacman_file() { - _filedir 'pkg.tar.*' - } - complete -F _pacman -o filenames -o default pacman -fi - -complete -F _makepkg -o default makepkg - -# ex:et ts=2 sw=2 ft=sh |