Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 46949 Details for
Bug 71957
ZSH-completion update using cache
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
global patch
zsh-completion-20041227.patch (text/plain), 31.36 KB, created by
Bapt
on 2004-12-27 03:01:54 UTC
(
hide
)
Description:
global patch
Filename:
MIME Type:
Creator:
Bapt
Created:
2004-12-27 03:01:54 UTC
Size:
31.36 KB
patch
obsolete
>diff -Nau zsh-completion-20040730/_gcc-config /usr/share/zsh/site-functions/_gcc-config >--- zsh-completion-20040730/_gcc-config 2004-08-17 23:26:02.000000000 +0200 >+++ /usr/share/zsh/site-functions/_gcc-config 2004-11-17 22:23:14.000000000 +0100 >@@ -19,8 +19,8 @@ > > _gcc_profile(){ > local profile >- profile=$(_call_program tag gcc-config --list-profiles) >- profile=${profile/\[([^]]*)\]/} >+ profile=(${(f)"$(_call_program gcc-installed gcc-config --list-profiles)"}) >+ profile=${${profile/\[([^]]*)\]/}/\*} > _tags profile && { compadd "$@" -k profile || compadd "$@" ${(kv)=profile} } > } > >diff -Nau zsh-completion-20040730/_genlop /usr/share/zsh/site-functions/_genlop >--- zsh-completion-20040730/_genlop 2004-10-09 17:39:15.000000000 +0200 >+++ /usr/share/zsh/site-functions/_genlop 2004-11-17 22:38:58.000000000 +0100 >@@ -61,7 +61,7 @@ > "($single --time -t)"{--time,-t}"[display merge time]" \ > "($single --rsync -r --unmerge -u)"{--unmerge,-u}"[display when packages have been unmerged]" \ > "($single $arg *)"{--version,-v}"[display version information]" \ >- "($single)*:package:_portage_pkglist" >+ "($single)*:package:_gentoo_packages available" > ;; > esac > >@@ -79,13 +79,6 @@ > done > } > >-#Function to show all available portage names >-_portage_pkglist(){ >- portage_pkglist="$portage_pkglist" >- _tags -s portage_pkglist && { compadd "$@" ${(kv)=portage_pkglist} } >- _path_files -/ -F "*CVSROOT" -F "*eclass" -F "*distfiles" -F "*licences" -F "*files" -W "${portdir}" >-} >- > _days() { > local m="monday" t="tuesday" w="wednesday" T="thursday" f="friday" s="saturday" S="sunday" > local day=$(date +%u) >@@ -115,31 +108,3 @@ > elif [[ ${month} == 12 ]] then compadd $j $f $m $a $M $ju $J $A $s $o $n $d > fi > } >- >-#Reading informations from make.conf >-# >-# Using portageq is the right way to get PORTDIR, but it is very slow :-( >-# >-#portdir="$(portageq portdir)" >-#pkgdir="$(portageq pkgdir)" >-#portdir_overlay="$(portageq portdir_overlay)" >-[[ -n "${PORTDIR}" ]] && portdir="${PORTDIR}" >-[[ -n "${PKGDIR}" ]] && pkgdir="${PKGDIR}" >-if [[ -n "${PORTDIR_OVERLAY}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >-[[ -r /etc/make.globals ]] && source /etc/make.globals >-[[ -r /etc/make.conf ]] && source /etc/make.conf >- >-[[ -z "${portdir}" ]] && portdir="${PORTDIR}" >-[[ -z "${pkgdir}" ]] && pkgdir="${PKGDIR}" >-if [[ -z "${portdir_overlay}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >- >-portage_pkglist=(${portdir}/*-*/* ${=portdir_overlay}/*-*/*) >-portage_pkglist=(${portage_pkglist##*/}) >diff -Nau zsh-completion-20040730/_gentoolkit /usr/share/zsh/site-functions/_gentoolkit >--- zsh-completion-20040730/_gentoolkit 2004-10-09 17:39:15.000000000 +0200 >+++ /usr/share/zsh/site-functions/_gentoolkit 2004-12-27 11:46:34.603317352 +0100 >@@ -12,19 +12,6 @@ > _tags overlay && { compadd "$@" ${(kv)=overlay} } > } > >-#show portage categories without / at end; app-cdr instead of app-cdr/ -- this can probably be done with _files, but I'm lazy >-_category(){ >- categories=($portdir/metadata/cache/*-*) >- category=${(M)${${categories##*/}}} >-_tags -s category && { compadd "$@" ${(kv)=category} } >-} >- >-#Function to show only installed packages -- pkgname (no category or version #) >-_portage_installed(){ >- installed_portage=(/var/db/pkg/*-*/*) >- installed_pkgname=${(M)${${installed_portage##*/}%%-[0-9]*}} >- _tags -s installed_pkgname && { compadd "$@" ${(kv)=installed_pkgname} } >-} > #moved out of equery > _equery_val(){ > _values "equery actions" \ >@@ -38,42 +25,6 @@ > 'size[print size of files contained in package]' > } > >-#Function to show all available portage names >-_portage_pkglist(){ >- portage_pkglist="$portage_pkglist" >- _tags -s portage_pkglist && { compadd "$@" ${(kv)=portage_pkglist} } >- _path_files -/ -F "*CVSROOT" -F "*eclass" -F "*distfiles" -F "*licences" -W "${portdir}" >-} >- >-#Reading informations from Portage >-# >-# Using portageq is the right way to get PORTDIR, but it is very slow :-( >-# >-#portdir="$(portageq portdir)" >-#pkgdir="$(portageq pkgdir)" >-#portdir_overlay="$(portageq portdir_overlay)" >-[[ -n "${PORTDIR}" ]] && portdir="${PORTDIR}" >-[[ -n "${PKGDIR}" ]] && pkgdir="${PKGDIR}" >-if [[ -n "${PORTDIR_OVERLAY}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >-[[ -r /etc/make.globals ]] && source /etc/make.globals >-[[ -r /etc/make.conf ]] && source /etc/make.conf >- >-[[ -z "${portdir}" ]] && portdir="${PORTDIR}" >-[[ -z "${pkgdir}" ]] && pkgdir="${PKGDIR}" >-if [[ -z "${portdir_overlay}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >- >-portage_pkglist=(${portdir}/*-*/* ${portdir_overlay}/*-*/*) >-portage_pkglist=(${portage_pkglist##*/}) >- >- > case $service in > > gensync) >@@ -99,20 +50,20 @@ > "($excl $check $arg $find --slot -s 1)"{--slot,-s}"[only print duplicates of the same slot]" \ > "($check $excl --installed -I --uninstalled -U $dups -d)"{--uninstalled,-U}"[include only uninstalled packages]" \ > "($excl --uninstalled -U --installed -I $dups -d)"{--installed,-I}"[include only installed packages]" \ >- "($excl --group -g $dups -d)"{--group,-g}"[find by group]:group:_category" \ >+ "($excl --group -g $dups -d)"{--group,-g}"[find by group]:group:_gentoo_packages category" \ > "($check $excl --list -l $dups -d)"{--list,-l}"[list package contents]" \ >- "($excl --info -i $dups -d 1)"{--info,-i}"[get package description and home page]:package:_portage_pkglist" \ >+ "($excl --info -i $dups -d 1)"{--info,-i}"[get package description and home page]:package:_gentoo_packages available" \ > "($excl $check $find $dups --uninstalled -U)"{--check-time,-ct}"[verify package file timestamps]" \ > "($excl $check $find $dups --uninstalled -U)"{--check-md5,-cm}"[verify package files md5]" \ > "($excl $check $find $dups --uninstalled -U)"{--check,-c}"[verify mtimes and md5]" \ >- "($excl $find --query-deps -q $dups -d 1)"{--query-deps,-q}"[display all installed packages depending on selected packages]:package:_portage_pkglist" \ >+ "($excl $find --query-deps -q $dups -d 1)"{--query-deps,-q}"[display all installed packages depending on selected packages]:package:_gentoo_packages available" \ > "()"{--no-color,-nc}"[dont use colors]" \ > "*--verbose[be more verbose (2 levels)]" \ > "*-v[be more verbose (2 levels)]" \ > "($excl --non-masked -n --masked -m $dups)"{--masked,-m}"[include only masked packages]" \ > "($excl --non-masked -n --masked -m $dups)"{--non-masked,-n}"[include only non-masked packages]" \ > "(- :)"{--help,-h}"[show help]" \ >- "(--info -i --query-deps -q --slot -s)1:package:_portage_installed" >+ "(--info -i --query-deps -q --slot -s)1:package:_gentoo_packages installed_versions" > ;; > > equery) >@@ -130,7 +81,7 @@ > '--timestamp[append timestamp]' \ > '--md5sum[append md5sum]' \ > '--type[prepend file type]' \ >- '*:installed pkgname:_portage_installed' && return 0 >+ '*:installed pkgname:_gentoo_packages installed_versions' && return 0 > ;; > belongs|--earlyout) > _arguments -s \ >@@ -140,7 +91,7 @@ > ;; > --category|-c) > _arguments -s \ >- '*:category:_category' && return 0 >+ '*:category:_gentoo_packages category' && return 0 > ;; > list|--installed|-i|--exclude-installed|-I|-p|--portage-tree|-o|--overlay-tree) > _arguments -s \ >@@ -148,29 +99,29 @@ > '(-I --exclude-installed -i --installed)'{-I,--exclude-installed}'[do not search installed packages]' \ > '(-p --portage)'{-p,--portage-tree}'[also search in portage tree]' \ > '(-o --overlay-tree)'{-o,--overlay-tree}'[also search in overlay tree]' \ >- '*:package:_portage_installed' && return 0 >+ '*:package:_gentoo_packages installed_versions' && return 0 > ;; > uses|which) > _arguments \ >- '*:package:_portage_pkglist' \ >+ '*:package:_gentoo_packages installed_versions' \ > && return 0 > ;; > depgraph|-U|--no-useflags|-l|--linear) > _arguments -s \ > '(-U --no-useflags)'{-U,--no-useflags}'[do not show USE flags]' \ > '(-l --linear)'{-l,--linear}'[do not use fancy formatting]' \ >- '*:package:_portage_installed' \ >+ '*:package:_gentoo_packages installed_versions' \ > && return 0 > ;; > size|-b|--bytes) > _arguments -s \ > '(-b --bytes)'{-b,--bytes}'[report size in bytes]' \ >- '*:package:_portage_installed' \ >+ '*:package:_gentoo_packages installed_versions' \ > && return 0 > ;; > check) > _arguments -s \ >- '*:package:_portage_installed' \ >+ '*:package:_gentoo_packages installed_versions' \ > && return 0 > ;; > --nocolor|-C|--quiet|-q) >diff -Nau zsh-completion-20040730/_gentoo_packages /usr/share/zsh/site-functions/_gentoo_packages >--- zsh-completion-20040730/_gentoo_packages 1970-01-01 01:00:00.000000000 +0100 >+++ /usr/share/zsh/site-functions/_gentoo_packages 2004-12-27 11:48:06.685318760 +0100 >@@ -0,0 +1,134 @@ >+#autoload >+ >+#Author: baptux <bapt@ifrance.com> >+#Author: oberyno <oberyno@gmail.com> >+#Description: >+# functions for gentoo packages >+# inspired by _deb_packages >+#Usage: _gentoo_packages installed|available|installed_versions|available_versions|binary|category >+ >+ >+_gentoo_packages_update_category(){ >+ local var trees category >+ for var in PORTDIR PORTDIR_OVERLAY ; do >+ [[ -z ${(P)var} && -r /etc/make.conf ]] && >+ local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`" >+ [[ -z ${(P)var} && -r /etc/make.globals ]] && >+ local $var="`. /etc/make.globals 2>/dev/null; echo ${(P)var}`" >+ done >+ trees=($PORTDIR $=PORTDIR_OVERLAY) >+ category=( $trees/*-*(/:t) ) >+ _wanted cat_packages expl 'category' compadd "$@" $category >+} >+ >+_gentoo_packages_update_installed(){ >+ local installed_dir installed_portage installed_list expl >+ installed_dir="/var/db/pkg" >+ installed_portage=($installed_dir/*-*/*) >+ >+ installed_pkgname=( ${${installed_portage:t}%%-[0-9]*} ) >+ _wanted packages expl 'category/package' compadd "$@" ${installed_pkgname} >+ >+ installed_list=( ${${installed_portage#$installed_dir/}%%-[0-9]*} ) >+ _wanted cat_packages expl 'category/package' _multi_parts "$@" / installed_list >+ >+} >+ >+_gentoo_packages_update_installed_versions(){ >+ local installed_list installed_portage expl >+ >+ installed_portage=(/var/db/pkg/*-*/*) >+ _wanted packages expl 'package' compadd "$@" ${installed_portage:t} >+ >+ installed_list=( ${installed_portage##*/pkg/} ) >+ _wanted cat_packages expl 'category/package' _multi_parts "$@" / installed_list >+} >+ >+_gentoo_packages_update_available(){ >+ local var trees category packages pkg expl >+ >+ for var in PORTDIR PORTDIR_OVERLAY ; do >+ [[ -z ${(P)var} && -r /etc/make.conf ]] && >+ local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`" >+ [[ -z ${(P)var} && -r /etc/make.globals ]] && >+ local $var="`. /etc/make.globals 2>/dev/null; echo ${(P)var}`" >+ done >+ trees=( $PORTDIR $=PORTDIR_OVERLAY) >+ category=( $trees/*-*(/:t) ) >+ >+ packages=( $trees/*-*/*(:t) ) >+ _wanted packages expl 'package' compadd - "${(@)packages}" >+ >+ # Complete cat/pkg. _multi_parts is much to slow for such a large task, >+ # _sep_parts removes the dash from gnome-<tab>, and _path_files wants to >+ # complete cat/pkg/files (if "files" is ignored with -F, miscfiles, etc... >+ # don't get completed). >+ if [[ $PREFIX != */* ]] ; then >+ _wanted cat_packages expl 'category/package' compadd -S '/' $category >+ else >+ compset -P '*/' >+ pkg=( $trees/$IPREFIX/*(:t) ) >+ _wanted cat_packages expl 'category/package' compadd $pkg >+ fi >+} >+ >+_gentoo_packages_update_available_versions(){ >+ local var overlay_ebuilds portage_ebuilds expl trees category >+ >+ for var in PORTDIR PORTDIR_OVERLAY ; do >+ [[ -z ${(P)var} && -r /etc/make.conf ]] && >+ local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`" >+ [[ -z ${(P)var} && -r /etc/make.globals ]] && >+ local $var="`. /etc/make.globals 2>/dev/null; echo ${(P)var}`" >+ done >+ trees=($PORTDIR $=PORTDIR_OVERLAY) >+ category=( $trees/*-*(/:t) ) >+ typeset -U category >+ >+ if [[ $#PREFIX -ge 1 && -z $words[(r)(--inject|-i)] ]] ; then >+ overlay_ebuilds=($=PORTDIR_OVERLAY/*-*/${PREFIX%%-[0-9]#*}*/*.ebuild(:t:r) ) >+ portage_ebuilds=($PORTDIR/metadata/cache/*-*/${PREFIX%%-[0-9]#*}*(:t)) >+ _wanted packages expl 'package' compadd $portage_ebuilds $overlay_ebuilds >+ fi >+ pkg=( $trees/${PREFIX%%/*}/*/*.ebuild(:t:r) ) >+ _wanted cat_packages expl 'category/package' _sep_parts category / pkg >+} >+ >+#Function to show tbz2 files available >+_gentoo_packages_update_binary() { >+ [[ -z $PKGDIR && -r /etc/make.conf ]] && >+ local PKGDIR="`. /etc/make.conf 2>/dev/null; echo $PKGDIR`" >+ [[ -z $PKGDIR && -r /etc/make.globals ]] && >+ local PKGDIR="`. /etc/make.globals 2>/dev/null; echo $PKGDIR`" >+ >+ # this doesn't take care of ${PORTAGE_BINHOST}. If Gentoo official >+ # binary mirror will be available we should rewrite it accordingly. >+ _path_files -g \*.tbz2 -W "$PKGDIR/All" >+} >+ >+_gentoo_packages () { >+ local command="$argv[$#]" expl cachevar pkgset update_policy >+ zstyle -s ":completion:*:*:$service:*" cache-policy update_policy >+ if [[ -z "$update_policy" ]]; then >+ zstyle ":completion:*:*:$service:*" cache-policy _gentoo_cache_policy >+ fi >+ [[ "$command" == (installed(_versions|)|available(_versions|)|binary|category) ]] || { >+ _message "unknown command: $command" >+ return >+ } >+ [[ "$pkgset" == (installed(_versions|)|available(_versions|)|binary|category) ]] || { >+ pkgset="$command" >+ } >+ expl=("${(@)argv[1,-2]}") >+ _gentoo_packages_update_$pkgset >+ >+} >+ >+_gentoo_cache_policy () { >+ # rebuild if cache is more than a week old >+ oldp=( "$1"(mw+1) ) >+ (( $#oldp )) && return 0 >+} >+ >+ >+_gentoo_packages "$@" >diff -Nau zsh-completion-20040730/_portage /usr/share/zsh/site-functions/_portage >--- zsh-completion-20040730/_portage 2004-08-18 00:05:44.000000000 +0200 >+++ /usr/share/zsh/site-functions/_portage 2004-12-27 11:23:42.000000000 +0100 >@@ -5,10 +5,11 @@ > # ZSH completion function for Portage > # Author: baptux <bapt@ifrance.com> > # Author: Mamoru KOMACHI <usata@gentoo.org> >+# Author: oberyno <oberyno@gmail.com> > > # Already done: > # >-# emerge (fully done) >+# emerge (fully done) > # rc-update (fully done) > # rc-status (fully done) > # ebuild (fully done) >@@ -57,7 +58,7 @@ > 'package[This command is a lot like the merge command, but create a .tbz2 package]' \ > 'rpm[Builds a RedHat RPM package]' > fi >- >+ > } > > # Stuff for rc-status >@@ -77,6 +78,8 @@ > # Stuff for rc-update > > _rc-update () { >+local used_init >+ used_init=(${=${(M)${(f)"$(rc-update show 2>/dev/null)"}:#*|*[a-z]*}% |*}) > if (( CURRENT == 2 ));then > _values "rc-update actions" \ > 'add[Add script to a runlevel]' \ >@@ -87,9 +90,11 @@ > '-s[Show scripts lanched at a runlevel]' > elif (( CURRENT == 3 ));then > case "$words[2]" in >- add|-a|del|-d) >- _arguments -s \ >- '*:scripts:_files -W /etc/init.d/' >+ add|-a) >+ _values "scripts" /etc/init.d/*~*.sh(:t) >+ ;; >+ del|-d) >+ _values "scripts" $used_init > ;; > show|-s) > _values "runlevels" $gentoo_runlevels >@@ -107,255 +112,134 @@ > # Stuff for quickpkg > > _quickpkg () { >- if compset -P '(\\|)[><][=]'; then >+ if compset -P '(\\|)(>=|<=|<|>|=)'; then > _arguments -s \ >- '*:installed pkgname with versions:_portage_unmerge_vers' && return 0 >- elif compset -P '(\\|)[<=>]'; then >- _arguments -s \ >- '*:installed pkgname with versions:_portage_unmerge_vers' && return 0 >+ '*:installed package:_gentoo_packages installed_versions' > elif compset -P '(\\|)[/]'; then >- _files -W / -/ && return 0 >- else >- _arguments -s \ >- '*:installed pkgname:_portage_quickpkg' && return 0 >+ _path_files -W / -/ >+ else >+ _arguments \ >+ '*:installed package:_gentoo_packages installed' > fi > } >- >+ > # Stuff for emerge > > _emerge () { >- local state >- if (( CURRENT == 2 ));then >- _arguments -s \ >- '*:*:->actions' \ >- "$common_args[@]" "$install_args[@]" && return 0 >- elif (( CURRENT > 2 ));then >- case "$words[2]" in >- unmerge|-C) >- if compset -P '(\\|)[><][=]'; then >- _arguments -s \ >- '*:installed pkgname with versions:_portage_unmerge_vers' "$common_args[@]" && return 0 >- elif compset -P '(\\|)[<=>]'; then >- _arguments -s \ >- '*:installed pkgname with versions:_portage_unmerge_vers' "$common_args[@]" && return 0 >- else >- _arguments -s \ >- '*:installed pkgname:_portage_unmerge' "$common_args[@]" && return 0 >- fi >- ;; >- clean|-c) >- _arguments -s \ >- '*:installed pkgname:_portage_clean' "$common_args[@]" && return 0 >- ;; >- --usepkgonly|-K) >- _arguments -s \ >- '*:use package only:_portage_tbz2list' "$common_args[@]" && return 0 >- ;; >- depclean|help|-h|info|regen|sync|rsync|--searchdesc|-S|search|-s|prune|-P) >- ;; >- --resume|--skipfirst) >- _arguments -s \ >- '--skipfirst[Removes the first package in the resume list]' \ >- "$common_args[@]" && return 0 >- ;; >- *) >- _arguments -s \ >- '*:*:->install_portage' \ >- "$common_args[@]" \ >- "$install_args[@]" && return 0 >- ;; >- esac >- fi >- while [[ -n "$state" ]]; do >- lstate=$state >- state='' >- case "$lstate" in >- actions) >- if compset -P '(\\|)[><][=]'; then >- _alternative \ >- '*:portage:_ebuild_cache' >- >- elif compset -P '(\\|)[<=>]'; then >- _alternative \ >- '*:portage:_ebuild_cache' >- >- else >- _alternative \ >- ':emerge actions:_actions' \ >- '*:portage:_portage_pkglist' >- fi >- >- ;; >- install_portage) >- if compset -P '(\\|)[><][=]'; then >- _alternative \ >- '*:portage:_ebuild_cache' >- elif compset -P '(\\|)[<=>]'; then >- _alternative \ >- '*:portage:_ebuild_cache' >- else >- _alternative \ >- '*:portage:_portage_pkglist' >- fi >- ;; >- esac >- done >-} >- >-#Function to show only installed packages -- pkgname (no category or version #) >-_portage_unmerge(){ >- installed_portage=(/var/db/pkg/*-*/*) >- installed_pkgname=${(M)${${installed_portage##*/}%%-[0-9]*}} >- _tags -s installed_pkgname && { compadd "$@" ${(kv)=installed_pkgname} } >- _path_files -/ -W "/var/db/pkg/" >-} >+ local nopkg_opts all noask_opts bopts install_args common_args profiles > >-#Function to show only installed packages -- no _path_files >-_portage_quickpkg(){ >- installed_portage=(/var/db/pkg/*-*/*) >- installed_pkgname=${(M)${${installed_portage##*/}%%-[0-9]*}} >- _tags -s installed_pkgname && { compadd "$@" ${(kv)=installed_pkgname} } >-} >- >-#Function to show only installed packages -- cat/name-ver >-_portage_unmerge_vers(){ >- installed_portage=(/var/db/pkg/*-*/*) >- installed_pkgname=${(M)${${installed_portage##*/}}} >- _tags -s installed_pkgname && { compadd "$@" ${(kv)=installed_pkgname} } >- _path_files -/ -W "/var/db/pkg/" >-} >+ noask_opts=(-p -a --pretend --ask --regen --info --search -s --searchdesc \ >+ -S --version -V --help -h --metadata) > >-#Functions to show "cat/name", classes and dependencies >-_portage_clean() { >- installed_portage=(/var/db/pkg/*-*/*) >- installed_dir=/var/db/pkg/ >- installed_pkg=${installed_portage//$installed_dir/} >- installed_pkgname=${(M)${${installed_portage##*/}%%-[0-9]*}} >- _tags -s installed_pkg && { compadd "$@" -k installed_pkg || compadd "$@" ${(kv)=installed_pkg} } >- _tags -s installed_pkgname && { compadd "$@" -k installed_pkgname || compadd "$@" ${(kv)=installed_pkgname} } >-} >- >-#Function to show tbz2 files available >-_portage_tbz2list() { >- # this doesn't take care of ${PORTAGE_BINHOST}. If Gentoo official >- # binary mirror will be available we should rewrite it accordingly. >- _path_files -g \*.tbz2 -W "${pkgdir}/All" >-} >+ nopkg_opts=(--resume --skipfirst -c --clean -h --help --depclean --info \ >+ --metadata -P --prune --regen -s --search -S --searchdesc --sync -C \ >+ --unmerge -V --version -i --inject) >+ >+ bopts=($nopkg_opts -b --buildpkg -B --buildpkgonly -G --getbinpkgonly -g \ >+ --getbinpkg -k --usepkg -K --usepkgonly --fetch-all-uri -f -F --fetchonly) >+ >+ all=($bopts -l --changelog --columns --deep -D --emptytree -e --newuse \ >+ --noconfmem --nodeps -O --noreplace -n --oneshot -1 -o --onlydeps --tree -t \ >+ -u --update -U --upgradeonly) >+ >+ common_args=( >+ "($noask_opts --sync)"{-p,--pretend}"[Simply display what would be done]" >+ "($noask_opts)"{-a,--ask}"[Ask what would be done]" >+ '(-d --debug --help -h --version -V)'{-d,--debug}'[Tells emerge to run the emerge command in debug mode]' >+ '(--quiet -q --verbose -v)'{-q,--quiet}'[General outcome is a reduced or condensed output]' >+ '(--verbose -v --quiet -q)'{-v,--verbose}'[Tell emerge to run in verbose mode]' >+ '--nospinner[Disables the spinner for the session]' >+ ) >+ install_args=( >+ "($bopts)"{-b,--buildpkg}"[Tells emerge to build binary packages]" >+ "($bopts)"{-B,--buildpkgonly}"[Tells emerge to only build binary packages]" >+ "($nopkg_opts --emptytree -e -l --changelog --usepkgonly -K)"{-l,--changelog}"[This will show the ChangeLog]" >+ "($nopkg_opts -t --tree)--columns[Displays versions in aligned format]" >+ "($nopkg_opts -D --deep)"{-D,--deep}"[Consider the entire dependency tree of packages]" >+ "($nopkg_opts -e -l --changelog --emptytree)"{-e,--emptytree}"[Only consider glibc as installed packages]" >+ "($all --nospinner --pretend -p)"{-i,--inject}"[Portage thinks that this package is installed]" >+ "($nopkg_opts $bopts)"{-f,--fetchonly}"[Just perform fetches for all packages]" >+ "($nopkg_opts $bopts)"{-F,--fetch-all-uri}"[As -f, but prints all mirrors when used with -p]" >+ "($bopts)"{-g,--getbinpkg}"[Tells emerge to download binary package]" >+ "($bopts)"{-G,--getbinpkgonly}"[As --getbinpkg, but does not use local info]" >+ "($nopkg_opts)--noconfmem[Causes portage to disregard merge records]" >+ "($nopkg_opts -O --nodeps)"{-O,--nodeps}"[Merges specified packages without merging dependencies]" >+ "($nopkg_opts -n --noreplace)"{-n,--noreplace}"[Skip packages already installed]" >+ "($nopkg_opts)"{-1,--oneshot}"[Do not add package to the world profile]" >+ "($nopkg_opts --onlydeps -o)"{-o,--onlydeps}"[Only merge (or pretend to merge) the dependencies]" >+ "($nopkg_opts --columns -t --tree)"{-t,--tree}"[Show dependency tree]" >+ "($nopkg_opts --update -u)"{-u,--update}"[Updates packages to the most recent version available]" >+ "($nopkg_opts --upgradeonly -U)"{-U,--upgradeonly}"[Do not update packages to a lower version]" >+ "($bopts)"{-k,--usepkg}"[Tells emerge to use binary packages if available]" >+ "($bopts --changelog -l)"{-K,--usepkgonly}"[Tells emerge to use binary packages only]" >+ "($all)"{-c,--clean}"[Cleans the system by removing packages]" >+ '(: -)'{-h,--help}'[Displays help]:subject:(sync config system)' >+ "(: $all)--depclean[Clean all packages that have no reason for being installed]" >+ "(: $all $noask_opts --nospinner --quiet -q)--info[This is a list of information to include in bug reports]" >+ "(: -)--metadata[Generate metadata]" >+ "($nopkg_opts --usepkgonly -K)--newuse[Include installed packages which have changed USE flags]" >+ "($all)"{-P,--prune}"[Removes all but the latest versions of matching packages]" >+ "(: $all $noask_opts --verbose -v)--regen[Causes portage to check and update the dependency cache]" >+ "(: $all $noask_opts --verbose -v)"{-s,--search}"[Searches for matches]" >+ "(: $all $noask_opts --verbose -v)"{-S,--searchdesc}"[Matches the seachdesc string against the description field]" >+ "(: $all --pretend -p)--sync[Initiates a portage tree update]" >+ "($all)"{-C,--unmerge}"[Removes all matching packages]" >+ '(: -)'{-V,--version}'[Display version info]' >+ "(: $all[3,-1])--resume[Resumes the last merge operation]" >+ "(: $all[3,-1])--skipfirst[Removes the first package in the resume list]" >+ ) >+ profiles=( >+ 'world[All packages in the world profile]' >+ 'system[All packages in the system profile]' >+ ) >+ >+ >+ # Dispatch >+ if (( $words[(I)(--(unmerge|clean|prune)|-[[:alpha:]]#(C|c|P)[[:alpha:]]#)] )) ; then >+ if compset -P '(\\|)(>=|<=|<|>|=)'; then >+ _arguments -s \ >+ '*:installed package:_gentoo_packages installed_versions' && return 0 >+ else >+ _arguments -s \ >+ "$common_args[@]" "$install_args[@]" \ >+ "*:installed package:_gentoo_packages installed" && return 0 >+ fi > >-#Function to show all available portage names >-_portage_pkglist(){ >- portage_classlist="world system" >- portage_pkglist="$portage_pkglist ${portage_classlist}" >- _tags -s portage_pkglist && { compadd "$@" -k portage_pkglist || compadd "$@" ${(kv)=portage_pkglist} } >- _path_files -/ -W "${portdir}" >- # XXX: If I add ${portdir_overlay} category completion won't work properly >- #[[ -n "${portdir_overlay}" ]] && _path_files -/ -W "${portdir_overlay}" >- _path_files -g \*.ebuild >+ elif (( $words[(I)(world|system)] )) ; then >+ _arguments -s \ >+ "$common_args[@]" "$install_args[@]" \ >+ "($nopkg_opts[1,-2] --inject -i --oneshot -1):" && return 0 >+ >+ elif (( $words[(I)(--usepkgonly|-[[:alnum:]]#K[[:alnum:]]#)] )) ; then >+ _arguments -s \ >+ "$common_args[@]" "$install_args[@]" \ >+ '*:binary package:_gentoo_packages binary' && return 0 >+ >+ elif [[ $words[-3] == (--help|-h) ]] ; then >+ _message "No more arguments" && return 0 >+ >+ else >+ if compset -P '(\\|)(>=|<=|<|>|=)'; then >+ _arguments \ >+ "*:portage:_gentoo_packages available_versions" && return 0 >+ >+ elif (( $words[(I)(--inject|-i)] )) ; then >+ _arguments -s \ >+ "$common_args[@]" "$install_args[@]" \ >+ "*:portage:_gentoo_packages available_versions" && return 0 >+ else >+ _arguments -s \ >+ "$common_args[@]" "$install_args[@]" \ >+ "($nopkg_opts)::portage: _values 'profile' \$profiles[@] " \ >+ "($nopkg_opts)*:portage:_gentoo_packages available" && return 0 >+ fi >+ fi > } >-#Function for matching all ebuilds pkg-ver (slow if asking for all packages) >-_ebuild_cache(){ >- if _cache_invalid portage_ebuilds || ! _retrieve_cache portage_ebuilds; then >- >- overlay_ebuilds=($portdir_overlay/*-*/*/*) >- overlay_list=${${(M)${overlay_ebuilds##*/}#*ebuild}%%.ebuild} >- metadata_ebuilds=($portdir/metadata/cache/*-*/*) >- metadata_list=${(M)${${metadata_ebuilds##*/}}} > >- _store_cache portage_ebuilds metadata_list overlay_list >- fi >- _tags -s metadata_list && {compadd "$@" ${(kv)=metadata_list} } >- _tags -s overlay_list && {compadd "$@" ${(kv)=overlay_list} } >-} > >-local update_policy >-zstyle -s ":completion:*:*:emerge:*" cache-policy update_policy >-if [[ -z "$update_policy" ]]; then >- zstyle ":completion:*:*:emerge:*" cache-policy _ebuilds_caching_policy >-fi >- >-_ebuilds_caching_policy () { >- # rebuild if cache is more than a week old >- oldp=( "$1"(mw+1) ) >- (( $#oldp )) && return 0 >-} > >-common_args=( >- {'(-p -a --ask)--pretend','(--pretend -a --ask)-p'}'[simply display what would be done]' >- {'(-p -a --pretend)--ask','(--pretend -p --ask)-a'}'[ask what would be done]' >- {'(-d)--debug','(--debug)-d'}'[Tells emerge to run the emerge command in debug mode]' >-) >-install_args=( >- {'(--upgradeonly -U --update -u --quiet -q --onlydeps -o --oneshot --nospinner --noreplace -n --nodeps -O --noconfmem -D --deep --changelog --buildpkg -B -b --buildpkgonly --emptytree -e -f --fetchonly)-l','(--upgradeonly -U --update -u --quiet -q --onlydeps -o --nospinner --noreplace -n --nodeps -O --noconfmem -D --deep --emptytree -e -f --fetchonly -l --buildpkg -b -B --buildpkgonly )--changelog'}'[This will show the ChangeLog]' >- {'(-b --buildpkgonly -B --changelog -l)--buildpkg','(--changelog -l --buildpkg --buildpkgonly -B)-b'}'[Tells emerge to build binary packages]' >- {'(-B -b --buildpkg --changelog -l)--buildpkgonly','(--changelog -l --buildpkgonly --buildpkg -b)-B'}'[Tells emerge to only build binary packages]' >- {'(-D --changelog -l)--deep','(-l --changelog --deep)-D'}'[Consider the entire dependency tree of packages]' >- {'(-e -l --changelog)--emptytree','(--emptytree -l --changelog)-e'}'[Only consider glibc as installed packages]' >- {'(-f -l --changelog)--fetchonly','(-l --changelog --fetchonly)-f'}'[Just perform fetches for all packages]' >- '(-l --changelog)--noconfmem[Causes portage to disregard merge records]' >- {'(--changelog -l -O)--nodeps','(--nodeps --changelog -l)-O'}'[Merges specified packages without merging dependencies]' >- {'(-l --changelog -n)--noreplace','(-l --changelog --noreplace)-n'}'[Skip packages already installed]' >- '(-l --changelog)--nospiner[Disables the spinner for the session]' >- '(-l --changelog)--oneshot[Do not add package to the world profile]' >- {'(--onlydeps --changelog -l)-o','(--changelog -o -l)--onlydeps'}'[Only merge (or pretend to merge) the dependencies]' >- {'(--quiet --changelog -l)-q','(-q --changelog -l)--quiet'}'[General outcome is a reduced or condensed output]' >- {'(-l --changelog -t)--tree','(-l --changelog --tree)-t'}'[Show dependency tree]' >- {'(--update --changelog -l)-u','(-u --changelog -l)--update'}'[Updates packages to the most recent version available]' >- {'(--upgradeonly --changelog -l)-U','(-U --changelog -l)--upgradeonly'}'[Do not update packages to a lower version]' >- {'(--usepkg --changelog -l)-k','(-k --changelog -l)--usepkg'}'[Tells emerge to use binary packages if available]' >- {'(--usepkgonly --changelog -l)-K','(-K --changelog -l)--usepkgonly'}'[Tells emerge to use binary packages only]' >- {'(--verbose)-v','(-v)--verbose'}'[Tell emerge to run in verbose mode]' >- '(-p --pretend -a --ask)--columns[Displays versions in aligned format]' >- '--resume[Resumes the last merge operation]' >-) >- >-_actions() { >- _values "emerge actions" \ >- 'sync[Initiates a portage tree update]' \ >- 'rsync[Initiates a portage tree update]' \ >- 'unmerge[Removes all matching packages]' \ >- 'search[Searches for matches]' \ >- 'regen[Causes portage to check and update the dependency cache]' \ >- 'prune[Removes all but the latest versions of matching packages]' \ >- 'inject[Portage thinks that this package is installed]' \ >- 'info[This is a list of information to include in bug reports]' \ >- 'help[Displays help]' \ >- 'depclean[Clean all packages that have no reason for being installed]'\ >- 'clean[Cleans the system by removing packages]' \ >- '-c[Cleans the system by removing packages]' \ >- '-h[Displays help]' \ >- '-i[Portage thinks that this package is installed]' \ >- '-P[Removes all but the latest versions of matching packages]' \ >- '-s[Searches for matches]' \ >- '-S[Matches the search string against the description field]' \ >- '--searchdesc[Matches the search string against the description field]' \ >- '-C[Removes all matching packages]' \ >- 'world[Represent all packages in the world profiles]' \ >- 'system[Represent all the system packages]' >-} >-local portage_pkglist gentoo_runlevels portdir pkgdir portdir_overlay overlay >-#Reading informations from make.conf >-[[ -n "${PORTDIR}" ]] && portdir="${PORTDIR}" >-[[ -n "${PKGDIR}" ]] && pkgdir="${PKGDIR}" >-if [[ -n "${PORTDIR_OVERLAY}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >-[[ -r /etc/make.globals ]] && source /etc/make.globals >-[[ -r /etc/make.conf ]] && source /etc/make.conf >- >-[[ -z "${portdir}" ]] && portdir="${PORTDIR}" >-[[ -z "${pkgdir}" ]] && pkgdir="${PKGDIR}" >-if [[ -z "${portdir_overlay}" ]] ; then >- for overlay in ${=PORTDIR_OVERLAY} ; do >- portdir_overlay=(${overlay} ${portdir_overlay}) >- done >-fi >- >-portage_pkglist=(${portdir}/*-*/* ${portdir_overlay}/*-*/*) >-portage_pkglist=(${portage_pkglist##*/}) >-gentoo_runlevels=(/etc/runlevels/*) >-gentoo_runlevels=(${${gentoo_runlevels/\/etc\/runlevels\//}%/}) >+local gentoo_runlevels >+gentoo_runlevels=(/etc/runlevels/*(:t)) > > case "$service" in > emerge)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 71957
:
44419
|
45679
|
45680
| 46949 |
47825