diff options
Diffstat (limited to 'completions/emerge')
-rw-r--r-- | completions/emerge | 127 |
1 files changed, 74 insertions, 53 deletions
diff --git a/completions/emerge b/completions/emerge index e84a7fc..32a1da9 100644 --- a/completions/emerge +++ b/completions/emerge @@ -1,6 +1,6 @@ # Gentoo Linux Bash Shell Command Completion # -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2013 Gentoo Authors # Distributed under the terms of the GNU General Public License, v2 or later source "@helpersdir@/gentoo-common.sh" @@ -10,16 +10,16 @@ source "@helpersdir@/gentoo-common.sh" # _emerge() { - local c cur prev curword numwords opts cond prepend + local c cur prev cond prepend local words stophere i x local action actionpos sysactions pkgpos local portdir=$(_portdir -o) COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - numwords=${#COMP_WORDS[*]} - curword=${COMP_CWORD} - opts='' + local cur=${COMP_WORDS[COMP_CWORD]} + local prev=${COMP_WORDS[COMP_CWORD-1]} + local numwords=${#COMP_WORDS[*]} + local curword=${COMP_CWORD} + local opts=() if [[ ${prev} == '>' || ${prev} == '<' ]] ; then COMPREPLY=($(compgen -f -- ${cur})) @@ -86,50 +86,71 @@ _emerge() # If a resume option was specified, it needs special handling. if [[ ${COMP_LINE} =~ --(resume|skipfirst) ]] ; then if [[ ${cur} == --* ]]; then - opts="--ask --pretend --resume --skipfirst" + opts=( --ask --pretend --resume --skipfirst ) elif [[ ${cur} == -* ]]; then - [[ ${COMP_LINE} =~ --(ask|pretend) ]] && opts="-a -p" + [[ ${COMP_LINE} =~ --(ask|pretend) ]] && opts=( -a -p ) fi elif [[ ${cur} == --* ]]; then # Complete on long options. - opts="--alphabetical \ - --ask --autounmask-write \ - --buildpkg --buildpkgonly \ - --changelog --clean --color=y --color=n --columns --complete-graph --config \ - --debug --deep --depclean --deselect \ - --emptytree \ - --fetch-all-uri --fetchonly \ - --getbinpkg --getbinpkgonly \ - --ignore-default-opts --info \ - --jobs= \ - --keep-going \ - --metadata \ - --newuse --noconfmem --nodeps --noreplace --nospinner \ - --oneshot --onlydeps \ - --pretend --prune \ - --quiet --rage-clean \ - --reinstall=changed-use --regen \ - --search \ - --sync \ - --tree \ - --unmerge --update --upgradeonly --usepkg --usepkgonly \ - --verbose \ - --with-bdeps=y --with-bdeps=n" + opts=( + --alphabetical + --ask + --autounmask-write --autounmask-keep-keywords --autounmask-continue={y,n} + --autounmask-backtrack --autounmask-only --autounmask-unrestricted-atoms + --autounmask-keep-masks --autounmask-license={y,n} --autounmask-use={y,n} + --accept-properties --accept-restrict --alert --alert={y,n} + --ask-enter-invalid + --binpkg-changed-deps --binpkg-respect-use + --buildpkg-exclude + --buildpkg --buildpkgonly + --backtrack= + --changelog --clean --color={y,n} --columns --complete-graph --config --check-news + --complete-graph-if-new-use={y,n} --complete-graph-if-new-ver={y,n} + --config-root + --changed-deps --changed-deps-report --changed-slot --changed-use + --debug --deep --depclean --deselect + --depclean-lib-check + --dynamic-deps={y,n} + --emptytree + --exclude + --fail-clean --fetch-all-uri --fetchonly --fuzzy-search + --getbinpkg --getbinpkgonly + --ignore-default-opts --ignore-built-slot-operator-deps={y,n} --ignore-soname-deps={y,n} + --ignore-world --implicit-system-deps={y,n} --info + --jobs= --load-average= + --keep-going + --misspell-suggestions={y,n} --metadata + --newrepo --newuse --noconfmem --nodeps --noreplace --nospinner + --oneshot --onlydeps --onlydeps-with-ideps --onlydeps-with-rdeps + --pretend --prune --package-moves --pkg-format + --quiet --quiet-build --quiet-fail --quiet-repo-display --quiet-unmerge-warn + --rage-clean --regex-search-auto={y,n} --read-news + --reinstall=changed-use --reinstall-atoms --regen --rebuild-exclude --rebuild-ignore --rebuild-if-new-slot + --rebuild-if-new-rev --rebuild-if-new-ver --rebuild-if-unbuilt --rebuilt-binaries + --search --search-index --search-similarity + --sync --select --selective + --sync-submodule={glsa,news,profiles} + --tree + --unordered-display --use-ebuild-visibility --useoldpkg-atoms --usepkg-exclude-live + --unmerge --update --update-if-installed --upgradeonly --usepkg --usepkgonly --usepkg-exclude + --verbose --verbose-conflicts --verbose-slot-rebuilds + --with-bdeps={y,n} --with-bdeps-auto={y,n} --with-test-deps + ) if [[ ${curword} -eq 1 ]] && [[ ${numwords} -eq 2 ]] ; then - opts="${opts} --help --resume --searchdesc --version" + opts+=( --help --resume --searchdesc --version ) fi elif [[ ${cur} == -* ]]; then # Complete on short options. - opts="-B -D -G -K -N -O -a -b -d -e -f -g -k -l -n -o -p -q -t -u -v" + opts+=( -B -D -G -K -N -O -a -b -d -e -f -g -k -l -n -o -p -q -t -u -v ) if [[ ${curword} -eq 1 ]] && [[ ${numwords} -eq 2 ]] ; then - opts="${opts} -h -S -V" + opts+=( -h -S -V ) fi if [[ -z ${action} ]] && [[ ${curword} -eq $((pkgpos - 1)) ]] ; then - opts="${opts} -C -P -c -s" + opts+=( -C -P -c -s ) fi fi - COMPREPLY=($(compgen -W "${opts}" -- ${cur})) + COMPREPLY=($(compgen -W '${opts[*]}' -- ${cur})) # NOTE: This slows things down! # (Adapted from bash_completion by Ian Macdonald <ian@caliban.org>) @@ -160,11 +181,11 @@ _emerge() # Complete on installed packages when unmerging. if [[ "${action}" =~ --(rage-clean|unmerge) ]]; then - if [[ -n "${cur}" ]] ; then - if [[ "${cur}" == */* ]]; then - words=$(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg; compgen -G "${cur}*") - else - words=$(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg; compgen -S '/' -G "${cur}*") + if [[ -n "${cur}" ]] ; then + if [[ "${cur}" == */* ]]; then + words=$(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg; compgen -G "${cur}*") + else + words=$(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg; compgen -S '/' -G "${cur}*") local n=0 for i in ${words} ; do @@ -174,13 +195,13 @@ _emerge() if [[ ${n} -eq 1 ]] ; then words="$(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg ; compgen -G "*-*/*")" fi + fi + COMPREPLY=($(for i in ${words} ; do \ + [[ ${i} == ${cur}* ]] && echo ${i} ; \ + done)) + else + COMPREPLY=($(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg ; compgen -S '/' -G "*-*")) fi - COMPREPLY=($(for i in ${words} ; do \ - [[ ${i} == ${cur}* ]] && echo ${i} ; \ - done)) - else - COMPREPLY=($(builtin cd @GENTOO_PORTAGE_EPREFIX@/var/db/pkg ; compgen -S '/' -G "*-*")) - fi [[ -z "${COMPREPLY}" ]] && _pkgname_only ${cur} @GENTOO_PORTAGE_EPREFIX@/var/db/pkg return 0 @@ -198,7 +219,7 @@ _emerge() # Handle cases where a conditional is specified. if [[ -n "${cond}" ]]; then - if [[ -n "${cur}" ]]; then + if [[ -n "${cur}" ]]; then if [[ ${cur} == */* ]]; then if [[ ${cur} == *-[0-9]* ]] ; then words="$(\ @@ -214,7 +235,7 @@ _emerge() done ; \ done)" else - words="$(\ + words="$(\ for pd in ${portdir} ; do \ builtin cd ${pd}; \ compgen -X "*metadata.xml" -G "${cur}*" -- ${cur} ; \ @@ -289,7 +310,7 @@ _emerge() COMPREPLY=($(compgen -W "${words}" -- "${cur}")) fi - # If all else fails, try to complete on package names without the + # If all else fails, try to complete on package names without the # category being specified. if [[ -z "${COMPREPLY}" ]]; then words="$(\ @@ -394,7 +415,7 @@ _emerge() builtin cd ${pd} ; \ compgen -S '/' -G "*-*" ; \ done)""${sysactions}" - COMPREPLY=($(compgen -W "${words}" -- ${cur})) + COMPREPLY=($(compgen -W "${words}" -- ${cur})) fi # If all else fails, try to complete on package names without the @@ -407,7 +428,7 @@ _emerge() [[ -d $i ]] && echo ${i##*/}; \ done ; \ done)" - COMPREPLY=($(compgen -W "${words}" -- ${cur})) + COMPREPLY=($(compgen -W "${words}" -- ${cur})) fi return 0 |