aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/_eselect322
-rw-r--r--src/_gcc-config35
-rw-r--r--src/_genlop173
-rw-r--r--src/_gentoo_packages446
-rw-r--r--src/_gentoolkit577
-rw-r--r--src/_layman74
-rw-r--r--src/_openrc150
-rw-r--r--src/_portage466
-rw-r--r--src/_portage_utils466
9 files changed, 1355 insertions, 1354 deletions
diff --git a/src/_eselect b/src/_eselect
index c012955..21d0d09 100644
--- a/src/_eselect
+++ b/src/_eselect
@@ -1,197 +1,199 @@
#compdef eselect
common_values=(
- "help[Display help text]"
- "usage[Display usage information]"
- "version[Display version information]"
+ "help[Display help text]"
+ "usage[Display usage information]"
+ "version[Display version information]"
)
_eselect_env () {
- if (( $words[(I)(update)] )); then
- _values "update options" \
- "makelinks[force updating of links]" \
- "noldconfig[Do not alter the ld.so cache or configuration]" && return 0
- fi
- _values "env options" $common_values \
- 'update[Collect environment variables from all scripts in /etc/env.d/]' && return 0
+ if (( $words[(I)(update)] )); then
+ _values "update options" \
+ "makelinks[force updating of links]" \
+ "noldconfig[Do not alter the ld.so cache or configuration]" && return 0
+ fi
+ _values "env options" $common_values \
+ 'update[Collect environment variables from all scripts in /etc/env.d/]' && return 0
}
_eselect_binutils () {
- local binutilslist
- if (( $words[(I)(set)] )); then
- binutilslist=(${(f)"$(eselect --brief --color=no binutils list)"})
- _values "available binutils version" $binutilslist[@] && return 0
- fi
- _values "binutils options" $common_values \
- "list[List all installed version of binutils]" \
- "show[Print the currently active binutils version]" \
- "set[Activate one of the installed binutils]" && return 0
+ local binutilslist
+ if (( $words[(I)(set)] )); then
+ binutilslist=(${(f)"$(eselect --brief --color=no binutils list)"})
+ _values "available binutils version" $binutilslist[@] && return 0
+ fi
+ _values "binutils options" $common_values \
+ "list[List all installed version of binutils]" \
+ "show[Print the currently active binutils version]" \
+ "set[Activate one of the installed binutils]" && return 0
}
_eselect_kernel () {
- local kernellist
- if (( $words[(I)(set)] )); then
- kernellist=(${(f)"$(eselect --brief --color=no kernel list)"})
- _values "available kernel version" $kernellist[@] && return 0
- fi
- _values "kernel options" $common_values \
- "list[List available kernel symlink targets]" \
- "show[Show the current kernel symlink]" \
- "set[Set a new kernel symlink target]" && return 0
+ local kernellist
+ if (( $words[(I)(set)] )); then
+ kernellist=(${(f)"$(eselect --brief --color=no kernel list)"})
+ _values "available kernel version" $kernellist[@] && return 0
+ fi
+ _values "kernel options" $common_values \
+ "list[List available kernel symlink targets]" \
+ "show[Show the current kernel symlink]" \
+ "set[Set a new kernel symlink target]" && return 0
}
_eselect_ctags () {
- local ctagslist
- if (( $words[(I)(set)] )); then
- ctagslist=(${(f)"$(eselect --brief --color=no ctags list)"})
- _values "available ctags version" $ctagslist[@] && return 0
- fi
- _values "ctags options" $common_values \
- "list[List available ctags symlink targets]" \
- "show[Show the current target of the ctags symlink]" \
- "update[Automatically update the ctags symlink]" \
- "set[Set a new ctags symlink target]" && return 0
+ local ctagslist
+ if (( $words[(I)(set)] )); then
+ ctagslist=(${(f)"$(eselect --brief --color=no ctags list)"})
+ _values "available ctags version" $ctagslist[@] && return 0
+ fi
+ _values "ctags options" $common_values \
+ "list[List available ctags symlink targets]" \
+ "show[Show the current target of the ctags symlink]" \
+ "update[Automatically update the ctags symlink]" \
+ "set[Set a new ctags symlink target]" && return 0
}
_eselect_profile () {
- local profilelist
- if (( $words[(I)(set)] )); then
- profilelist=(${${(f)"$(eselect --brief --color=no profile list)"}/:/\\:})
- _values -w "available profiles" $profilelist[@] \
- "--force[Forcibly set the symlink]" && return 0
- fi
- _values "profile options" $common_values \
- "list[List available profile symlink targets]" \
- "show[Show the current make.profile symlink]" \
- "set[Set a new profile symlink target]" && return 0
+ local profilelist
+ if (( $words[(I)(set)] )); then
+ profilelist=(${${(f)"$(eselect --brief --color=no profile list)"}/:/\\:})
+ _values -w "available profiles" $profilelist[@] \
+ "--force[Forcibly set the symlink]" && return 0
+ fi
+ _values "profile options" $common_values \
+ "list[List available profile symlink targets]" \
+ "show[Show the current make.profile symlink]" \
+ "set[Set a new profile symlink target]" && return 0
}
_eselect_fontconfig () {
- local fclistenabled fclistdisabled
- if (( $words[(I)(enable)] )); then
- fclistdisabled=(${${${${(M)${(f)"$(eselect --color=no fontconfig list)"}## *}#*\*}// \**/}//( \[*\] | \[*\] )/})
- _values -w ".conf to enable" $fclistdisabled[@] && return 0
- elif (( $words[(I)(disable)] )); then
- fclistenabled=(${${${(M)${(M)${(f)"$(eselect --color=no fontconfig list)"}## *}#*\*}// \**/}//( \[*\] | \[*\] )/})
- _values -w ".conf to disable" $fclistenabled[@] && return 0
- fi
- _values "fontconfig options" $common_values \
- "list[List available fontconfig .conf files]" \
- "disable[Disable specified fontconfig .conf file(s)]" \
- "enable[Enable specified fontconfig .conf file(s)]" && return 0
+ local fclistenabled fclistdisabled
+ if (( $words[(I)(enable)] )); then
+ fclistdisabled=(${${${${(M)${(f)"$(eselect --color=no fontconfig list)"}## *}#*\*}// \**/}//( \[*\] | \[*\] )/})
+ _values -w ".conf to enable" $fclistdisabled[@] && return 0
+ elif (( $words[(I)(disable)] )); then
+ fclistenabled=(${${${(M)${(M)${(f)"$(eselect --color=no fontconfig list)"}## *}#*\*}// \**/}//( \[*\] | \[*\] )/})
+ _values -w ".conf to disable" $fclistenabled[@] && return 0
+ fi
+ _values "fontconfig options" $common_values \
+ "list[List available fontconfig .conf files]" \
+ "disable[Disable specified fontconfig .conf file(s)]" \
+ "enable[Enable specified fontconfig .conf file(s)]" && return 0
}
_eselect_opengl () {
- local opengllist
- if (( $words[(I)(set)] )); then
- opengllist=(${(f)"$(eselect --brief --color=no opengl list)"})
- _values -w "opengl implementations and options" $opengllist[@] \
- "--use-old[If an implementation is already set, use that one instead]" \
- "--prefix[Set the source prefix]:path:_files -/" \
- "--dst-prefix[Set the destination prefix]:path:_files -/" \
- "--ignore-missing[Ignore missing files when setting a new implementation]" && return 0
- fi
- _values "opengl options" $common_values \
- "list[List the available OpenGL implementations]" \
- "set[Select the OpenGL implementation]" \
- "show[Print the current OpenGL implementation]" && return 0
+ local opengllist
+ if (( $words[(I)(set)] )); then
+ opengllist=(${(f)"$(eselect --brief --color=no opengl list)"})
+ _values -w "opengl implementations and options" $opengllist[@] \
+ "--use-old[If an implementation is already set, use that one instead]" \
+ "--prefix[Set the source prefix]:path:_files -/" \
+ "--dst-prefix[Set the destination prefix]:path:_files -/" \
+ "--ignore-missing[Ignore missing files when setting a new implementation]" && return 0
+ fi
+ _values "opengl options" $common_values \
+ "list[List the available OpenGL implementations]" \
+ "set[Select the OpenGL implementation]" \
+ "show[Print the current OpenGL implementation]" && return 0
}
_eselect_vi () {
- local vilist
- if (( $words[(I)(set)] )); then
- vilist=(${(f)"$(eselect --brief --color=no vi list)"})
- _values -w "vi implementation" $vilist[@] && return 0
- elif (( $words[(I)(update)] )); then
- _values -w "option" "--if-unset[Do not override existing implementation]" && return 0
- fi
- _values "vi options" $common_values \
- "list[List available vi implementations]" \
- "set[Set a new vi implementation provider]" \
- "show[Show the current vi implementation]" \
- "update[Automatically update the vi provider]"
+ local vilist
+ if (( $words[(I)(set)] )); then
+ vilist=(${(f)"$(eselect --brief --color=no vi list)"})
+ _values -w "vi implementation" $vilist[@] && return 0
+ elif (( $words[(I)(update)] )); then
+ _values -w "option" "--if-unset[Do not override existing implementation]" && return 0
+ fi
+ _values "vi options" $common_values \
+ "list[List available vi implementations]" \
+ "set[Set a new vi implementation provider]" \
+ "show[Show the current vi implementation]" \
+ "update[Automatically update the vi provider]"
}
_eselect_news() {
- ## TODO: Normal numeric sorting.
- ## I've spent many time on trying to rewrite this
- ## function to normally sort (to DO NOT sort, actually) items,
- ## but it growing bigger and bigger and going to be too complicated.
- ## So, I (mva) either need to help to make it in the "right way".
- ## Or, maybe, to completely rewrite this compdef.
-
- local -a newslist;
- if ((CURRENT == 3)); then
- _values 'news options' $stdopts[@] \
- 'list[List news items]' \
- 'count[Display number of news items]' \
- 'purge[Purge read news]' \
- 'read[Read news items]' \
- 'unread[Mark read news items as unread again]' && return 0
- elif ((CURRENT == 4)); then
- if (( $words[(I)(count)] )); then
- _values -w 'news' 'new[Count only new news items]' 'all[Count all news items]' && return 0
- fi
-
- newslist=(${${${${${${${(M)${(f)"$(eselect --color=no news list)"}## *}// \**/}/ \[/}/\] ##/\[}/%/]}/ \[/ (}/\] /) })
-
- if (( $words[(I)(read)] )); then
- newslist+=( "new[Read unread news items (default)]" "all[Read all news items]" "--mbox[Output in mbox format]" "--quiet[Suppress output, only change status]" "--raw[Output in raw format]" )
- fi;
-
- if (( $words[(I)(unread)] )); then
- newslist+=( "all[Unread all news items]" )
- fi
-
- _values -w 'news' $newslist[@] && return 0
- fi
+ ## TODO: Normal numeric sorting.
+ ## I've spent many time on trying to rewrite this
+ ## function to normally sort (to DO NOT sort, actually) items,
+ ## but it growing bigger and bigger and going to be too complicated.
+ ## So, I (mva) either need to help to make it in the "right way".
+ ## Or, maybe, to completely rewrite this compdef.
+
+ local -a newslist;
+ if ((CURRENT == 3)); then
+ _values 'news options' $stdopts[@] \
+ 'list[List news items]' \
+ 'count[Display number of news items]' \
+ 'purge[Purge read news]' \
+ 'read[Read news items]' \
+ 'unread[Mark read news items as unread again]' && return 0
+ elif ((CURRENT == 4)); then
+ if (( $words[(I)(count)] )); then
+ _values -w 'news' 'new[Count only new news items]' 'all[Count all news items]' && return 0
+ fi
+
+ newslist=(${${${${${${${(M)${(f)"$(eselect --color=no news list)"}## *}// \**/}/ \[/}/\] ##/\[}/%/]}/ \[/ (}/\] /) })
+
+ if (( $words[(I)(read)] )); then
+ newslist+=( "new[Read unread news items (default)]" "all[Read all news items]" "--mbox[Output in mbox format]" "--quiet[Suppress output, only change status]" "--raw[Output in raw format]" )
+ fi;
+
+ if (( $words[(I)(unread)] )); then
+ newslist+=( "all[Unread all news items]" )
+ fi
+
+ _values -w 'news' $newslist[@] && return 0
+ fi
}
_eselect () {
- local globopts modnames modopts
-
- globopts=(
- "--brief[Make output shorter]"
- "--colour=no[Disable coloured output]"
- "--color=no[Disable coloured output]"
- )
- modnames=(${${${(M)${(f)"$(eselect --brief --color=no modules list)"}## *}// */}// /})
-
- if ((CURRENT == 2)); then
- _arguments -s \
- "$globopts[@]" \
- "*:portage:_values 'eselect modules' \$modnames[@]" && return 0
- elif ((CURRENT == 3)); then
- if [[ $words[2] == --colour=no || $words[2] == --color=no ]]; then
- _arguments -s \
- "*:portage:_values 'eselect modules' \$modnames[@]" && return 0
- elif (( $modnames[(I)$words[2]] )); then
- if [[ "$words[2]" == (env|binutils|kernel|ctags|profile|fontconfig|opengl|vi|news) ]]; then
- _eselect_$words[2] "$@"
- else
- modopts=(${${${(M)${(f)"$(eselect --brief --color=no $words[2] usage)"}## *}// */}// /})
- _arguments -s \
- "*:portage:_values 'eselect $words[2] options' \$modopts[@]" && return 0
- fi
- fi
- elif ((CURRENT >= 4)); then
- if (( $words[(I)(--color=no|--colour=no)] )); then
- if (( $modnames[(I)$words[3]] )); then
- if [[ "$words[3]" == (env|binutils|kernel|ctags|profile|fontconfig|opengl|vi|news) ]]; then
- _eselect_$words[3] "$@"
- else
- modopts=(${${${${(M)${(f)"$(eselect --brief --color=no $words[3] usage)"}## *}// */}// /}// *})
- _arguments -s \
- "*:portage:_values 'eselect $words[3] options' \$modopts[@]" && return 0
- fi
- fi
- else
- if (( $modnames[(I)$words[2]] )); then
- (( $+functions[_eselect_$words[2]] )) && _eselect_$words[2] "$@"
- fi
- fi
- fi
+ local globopts modnames modopts
+
+ globopts=(
+ "--brief[Make output shorter]"
+ "--colour=no[Disable coloured output]"
+ "--color=no[Disable coloured output]"
+ )
+ modnames=(${${${(M)${(f)"$(eselect --brief --color=no modules list)"}## *}// */}// /})
+
+ if ((CURRENT == 2)); then
+ _arguments -s \
+ "$globopts[@]" \
+ "*:portage:_values 'eselect modules' \$modnames[@]" && return 0
+ elif ((CURRENT == 3)); then
+ if [[ $words[2] == --colour=no || $words[2] == --color=no ]]; then
+ _arguments -s \
+ "*:portage:_values 'eselect modules' \$modnames[@]" && return 0
+ elif (( $modnames[(I)$words[2]] )); then
+ if [[ "$words[2]" == (env|binutils|kernel|ctags|profile|fontconfig|opengl|vi|news) ]]; then
+ _eselect_$words[2] "$@"
+ else
+ modopts=(${${${(M)${(f)"$(eselect --brief --color=no $words[2] usage)"}## *}// */}// /})
+ _arguments -s \
+ "*:portage:_values 'eselect $words[2] options' \$modopts[@]" && return 0
+ fi
+ fi
+ elif ((CURRENT >= 4)); then
+ if (( $words[(I)(--color=no|--colour=no)] )); then
+ if (( $modnames[(I)$words[3]] )); then
+ if [[ "$words[3]" == (env|binutils|kernel|ctags|profile|fontconfig|opengl|vi|news) ]]; then
+ _eselect_$words[3] "$@"
+ else
+ modopts=(${${${${(M)${(f)"$(eselect --brief --color=no $words[3] usage)"}## *}// */}// /}// *})
+ _arguments -s \
+ "*:portage:_values 'eselect $words[3] options' \$modopts[@]" && return 0
+ fi
+ fi
+ else
+ if (( $modnames[(I)$words[2]] )); then
+ (( $+functions[_eselect_$words[2]] )) && _eselect_$words[2] "$@"
+ fi
+ fi
+ fi
}
_eselect "$@"
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_gcc-config b/src/_gcc-config
index 3b0fcf3..ce61113 100644
--- a/src/_gcc-config
+++ b/src/_gcc-config
@@ -1,27 +1,30 @@
#compdef gcc-config
-#Author oberyno <oberyno@gmail.com>
+
+# Author oberyno <oberyno@gmail.com>
local arguments
arguments=(
- '(- :)'{--use-old,-O}'[use the old profile if one was selected]'
- '(- :)'{--use-portage-chost,-P}'[only set profile if its CHOST matches /etc/{portage/}make.conf]:profiles:_gcc_profile'
- '(- :)'{--get-current-profile,-c}'[print current used gcc profile]'
- '(- :)'{--list-profiles,-l}'[print a list of available profiles]'
- '(- :)'{--print-environ,-E}'[print environment of the given/current profile]:profiles:_gcc_profile'
- '(- :)'{--get-bin-path,-B}'[print binary path of given/current profile]:profiles:_gcc_profile'
- '(- :)'{--get-lib-path,-L}'[print library path of given/current profile]:profiles:_gcc_profile'
- '(- :)'{--get-stdcxx-incdir,-X}'[print g++ include path of given/current profile]:profiles:_gcc_profile'
- '(- :)'{--help,-h}'[show help]'
- '(- :)'{--version,-v}'[show version info]'
- '(- :):profiles:_gcc_profile'
+ '(- :)'{--use-old,-O}'[use the old profile if one was selected]'
+ '(- :)'{--use-portage-chost,-P}'[only set profile if its CHOST matches /etc/{portage/}make.conf]:profiles:_gcc_profile'
+ '(- :)'{--get-current-profile,-c}'[print current used gcc profile]'
+ '(- :)'{--list-profiles,-l}'[print a list of available profiles]'
+ '(- :)'{--print-environ,-E}'[print environment of the given/current profile]:profiles:_gcc_profile'
+ '(- :)'{--get-bin-path,-B}'[print binary path of given/current profile]:profiles:_gcc_profile'
+ '(- :)'{--get-lib-path,-L}'[print library path of given/current profile]:profiles:_gcc_profile'
+ '(- :)'{--get-stdcxx-incdir,-X}'[print g++ include path of given/current profile]:profiles:_gcc_profile'
+ '(- :)'{--help,-h}'[show help]'
+ '(- :)'{--version,-v}'[show version info]'
+ '(- :):profiles:_gcc_profile'
)
_gcc_profile(){
- local profile
- profile=(${(f)"$(_call_program gcc-installed RC_NOCOLOR=yes gcc-config --list-profiles)"})
- profile=${${profile/\[([^]]*)\]/}/\*}
- _tags profile && { compadd "$@" -k profile || compadd "$@" ${(kv)=profile} }
+ local profile
+ profile=(${(f)"$(_call_program gcc-installed RC_NOCOLOR=yes gcc-config --list-profiles)"})
+ profile=${${profile/\[([^]]*)\]/}/\*}
+ _tags profile && { compadd "$@" -k profile || compadd "$@" ${(kv)=profile} }
}
_arguments $arguments
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_genlop b/src/_genlop
index 6e817fd..92c844b 100644
--- a/src/_genlop
+++ b/src/_genlop
@@ -1,6 +1,7 @@
#compdef genlop
#genlop 0.30.8
+
_genlop () {
local prev1="$words[CURRENT-1]" prev2="$words[CURRENT-2]" days months arg single state lstate
days=(monday tuesday wednesday thursday friday saturday sunday)
@@ -8,96 +9,98 @@ months=(january february march april may june july august september october nove
arg=( --current -c --time -t --gmt -g --info -i --file -f --rsync -r --unmerge -u --date --search -s --list -l )
single=( --current -c --pretend -p --help -h --version -v )
- [[ ${prev2} == (1st|2nd|3rd|4th|5th) ]] &&
- compadd in\ $months && return 0
- [[ ${prev1} == ([2-9]|[1-9][0-9]*) && ${prev2} != \
- (january|february|march|april|may|june|july|august|september|october|november|december) ]] &&
- _values '' 'days ago' 'months ago' 'years ago' 'weeks ago' && return 0
- [[ ${prev1} == (1) && ${prev2} != \
- (january|february|march|april|may|june|july|august|september|october|november|december) ]] &&
- _values '' 'day ago' 'month ago' 'year ago' 'week ago' && return 0
+ [[ ${prev2} == (1st|2nd|3rd|4th|5th) ]] &&
+ compadd in\ $months && return 0
+ [[ ${prev1} == ([2-9]|[1-9][0-9]*) && ${prev2} != \
+ (january|february|march|april|may|june|july|august|september|october|november|december) ]] &&
+ _values '' 'days ago' 'months ago' 'years ago' 'weeks ago' && return 0
+ [[ ${prev1} == (1) && ${prev2} != \
+ (january|february|march|april|may|june|july|august|september|october|november|december) ]] &&
+ _values '' 'day ago' 'month ago' 'year ago' 'week ago' && return 0
- case "$prev1" in
- last)
- _values '' month week
- compadd $days && return 0
- ;;
- 1st|2nd|3rd|4th|5th)
- compadd $days && return 0
- ;;
- january|february|march|april|may|june|july|august|september|october|november|december)
- compadd {1..31} && return 0
- ;;
- --date)
- _message 'enter number for more options or use mm/dd/yyyy format'
- _values '' \
- last yesterday 1st 2nd 3rd 4th 5th
- _alternative \
- '*:*:_days' '*:*:_months' && return 0
- ;;
- --file|-f)
- _arguments '*:logfile:_files' && return 0
- ;;
- *)
- _arguments \
- "($single $arg *)"{--current,-c}"[display the current merge in action]" \
- "($single)*--date[specify date of event]:date:->date" \
- "($single)*-f[specify the logfile to use]:logfile:_files" \
- "($single --gmt -g)"{--gmt,-g}"[display time in GMT/UTC format (default is local time)]" \
- "($single $arg *)"{--help,-h}"[display help information]" \
- "($single --info -i --list -l)"{--info,-i}"[print brief summary about installed ebuild]" \
- "($single --search -s --info -i --list -l *)"{--list,-l}"[list merge history]" \
- "(--nocolor -n)"{--nocolor,-n}"[disable colored output]" \
- "($single $arg *)"{--pretend,-p}"[estimate build time of a piped emerge -p]" \
- "($single --search -s --info -i --time -t --unmerge -u --rsync -r *)"{--rsync,-r}"[display rsync history]" \
- "($single --rsync -r --search -s --list -l *)"{--search,-s}"[select ebuilds matching the provided regular expression]:pattern:" \
- "($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:_gentoo_packages available"
- ;;
- esac
+ case "$prev1" in
+ last)
+ _values '' month week
+ compadd $days && return 0
+ ;;
+ 1st|2nd|3rd|4th|5th)
+ compadd $days && return 0
+ ;;
+ january|february|march|april|may|june|july|august|september|october|november|december)
+ compadd {1..31} && return 0
+ ;;
+ --date)
+ _message 'enter number for more options or use mm/dd/yyyy format'
+ _values '' \
+ last yesterday 1st 2nd 3rd 4th 5th
+ _alternative \
+ '*:*:_days' '*:*:_months' && return 0
+ ;;
+ --file|-f)
+ _arguments '*:logfile:_files' && return 0
+ ;;
+ *)
+ _arguments \
+ "($single $arg *)"{--current,-c}"[display the current merge in action]" \
+ "($single)*--date[specify date of event]:date:->date" \
+ "($single)*-f[specify the logfile to use]:logfile:_files" \
+ "($single --gmt -g)"{--gmt,-g}"[display time in GMT/UTC format (default is local time)]" \
+ "($single $arg *)"{--help,-h}"[display help information]" \
+ "($single --info -i --list -l)"{--info,-i}"[print brief summary about installed ebuild]" \
+ "($single --search -s --info -i --list -l *)"{--list,-l}"[list merge history]" \
+ "(--nocolor -n)"{--nocolor,-n}"[disable colored output]" \
+ "($single $arg *)"{--pretend,-p}"[estimate build time of a piped emerge -p]" \
+ "($single --search -s --info -i --time -t --unmerge -u --rsync -r *)"{--rsync,-r}"[display rsync history]" \
+ "($single --rsync -r --search -s --list -l *)"{--search,-s}"[select ebuilds matching the provided regular expression]:pattern:" \
+ "($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:_gentoo_packages available"
+ ;;
+ esac
- while [[ -n "$state" ]]; do
- lstate=$state
- state=''
- case "$lstate" in
- date) _message 'enter number for more options or use mm/dd/yyyy format'
- _values '' \
- last yesterday 1st 2nd 3rd 4th 5th
- _alternative \
- ':*:_days' ':*:_months' && return 0
- ;;
- esac
- done
+ while [[ -n "$state" ]]; do
+ lstate=$state
+ state=''
+ case "$lstate" in
+ date) _message 'enter number for more options or use mm/dd/yyyy format'
+ _values '' \
+ last yesterday 1st 2nd 3rd 4th 5th
+ _alternative \
+ ':*:_days' ':*:_months' && return 0
+ ;;
+ esac
+ done
}
_days() {
- local m="monday" t="tuesday" w="wednesday" T="thursday" f="friday" s="saturday" S="sunday"
- local day=$(date +%u)
- if [[ ${day} == 1 ]] then compadd $m
- elif [[ ${day} == 2 ]] then compadd $m $t
- elif [[ ${day} == 3 ]] then compadd $m $t $w
- elif [[ ${day} == 4 ]] then compadd $m $t $w $T
- elif [[ ${day} == 5 ]] then compadd $m $t $w $T $f
- elif [[ ${day} == 6 ]] then compadd $m $t $w $T $f $s
- elif [[ ${day} == 7 ]] then compadd $m $t $w $T $f $s $S
- fi
+ local m="monday" t="tuesday" w="wednesday" T="thursday" f="friday" s="saturday" S="sunday"
+ local day=$(date +%u)
+ if [[ ${day} == 1 ]] then compadd $m
+ elif [[ ${day} == 2 ]] then compadd $m $t
+ elif [[ ${day} == 3 ]] then compadd $m $t $w
+ elif [[ ${day} == 4 ]] then compadd $m $t $w $T
+ elif [[ ${day} == 5 ]] then compadd $m $t $w $T $f
+ elif [[ ${day} == 6 ]] then compadd $m $t $w $T $f $s
+ elif [[ ${day} == 7 ]] then compadd $m $t $w $T $f $s $S
+ fi
}
_months() {
- local j="january" f="february" m="march" a="april" M="may" ju="june" J="july" A="august" s="september" o="october" n="november" d="december"
- local month=$(date +%m)
- if [[ ${month} == 01 ]] then compadd $j
- elif [[ ${month} == 02 ]] then compadd $j $f
- elif [[ ${month} == 03 ]] then compadd $j $f $m
- elif [[ ${month} == 04 ]] then compadd $j $f $m $a
- elif [[ ${month} == 05 ]] then compadd $j $f $m $a $M
- elif [[ ${month} == 06 ]] then compadd $j $f $m $a $M $ju
- elif [[ ${month} == 07 ]] then compadd $j $f $m $a $M $ju $J
- elif [[ ${month} == 08 ]] then compadd $j $f $m $a $M $ju $J $A
- elif [[ ${month} == 09 ]] then compadd $j $f $m $a $M $ju $J $A $s
- elif [[ ${month} == 10 ]] then compadd $j $f $m $a $M $ju $J $A $s $o
- elif [[ ${month} == 11 ]] then compadd $j $f $m $a $M $ju $J $A $s $o $n
- elif [[ ${month} == 12 ]] then compadd $j $f $m $a $M $ju $J $A $s $o $n $d
- fi
+ local j="january" f="february" m="march" a="april" M="may" ju="june" J="july" A="august" s="september" o="october" n="november" d="december"
+ local month=$(date +%m)
+ if [[ ${month} == 01 ]] then compadd $j
+ elif [[ ${month} == 02 ]] then compadd $j $f
+ elif [[ ${month} == 03 ]] then compadd $j $f $m
+ elif [[ ${month} == 04 ]] then compadd $j $f $m $a
+ elif [[ ${month} == 05 ]] then compadd $j $f $m $a $M
+ elif [[ ${month} == 06 ]] then compadd $j $f $m $a $M $ju
+ elif [[ ${month} == 07 ]] then compadd $j $f $m $a $M $ju $J
+ elif [[ ${month} == 08 ]] then compadd $j $f $m $a $M $ju $J $A
+ elif [[ ${month} == 09 ]] then compadd $j $f $m $a $M $ju $J $A $s
+ elif [[ ${month} == 10 ]] then compadd $j $f $m $a $M $ju $J $A $s $o
+ elif [[ ${month} == 11 ]] then compadd $j $f $m $a $M $ju $J $A $s $o $n
+ elif [[ ${month} == 12 ]] then compadd $j $f $m $a $M $ju $J $A $s $o $n $d
+ fi
}
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_gentoo_packages b/src/_gentoo_packages
index da770b2..fd1dbcd 100644
--- a/src/_gentoo_packages
+++ b/src/_gentoo_packages
@@ -6,194 +6,193 @@ setopt extendedglob bareglobqual
# inspired by _deb_packages
#Usage: _gentoo_packages installed|available|installed_versions|available_versions|binary|category|useflag
-
_portdir() {
- local mainreponame mainrepopath overlayname overlaypath
+ local mainreponame mainrepopath overlayname overlaypath
- if [[ -e /usr/share/portage/config/repos.conf ]]; then
- if [[ ${1} == "-o" ]]; then
- for overlayname in $(_parsereposconf -l); do
- overlaypath+=($(_parsereposconf ${overlayname} location))
- done
+ if [[ -e /usr/share/portage/config/repos.conf ]]; then
+ if [[ ${1} == "-o" ]]; then
+ for overlayname in $(_parsereposconf -l); do
+ overlaypath+=($(_parsereposconf ${overlayname} location))
+ done
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
+ source /etc/make.conf 2>/dev/null
+ source /etc/portage/make.conf 2>/dev/null
- overlaypath+=(${(@)PORTDIR_OVERLAY})
+ overlaypath+=(${(@)PORTDIR_OVERLAY})
- echo "${(@u)overlaypath}"
- else
- mainreponame=$(_parsereposconf DEFAULT main-repo)
- mainrepopath=$(_parsereposconf ${mainreponame} location)
+ echo "${(@u)overlaypath}"
+ else
+ mainreponame=$(_parsereposconf DEFAULT main-repo)
+ mainrepopath=$(_parsereposconf ${mainreponame} location)
- echo "${mainrepopath}"
- fi
+ echo "${mainrepopath}"
+ fi
+ else
+ source /usr/share/portage/config/make.globals 2>/dev/null
+ source /etc/make.conf 2>/dev/null
+ source /etc/portage/make.conf 2>/dev/null
+
+ if [[ ${1} == "-o" ]]; then
+ echo "${(@u)PORTDIR_OVERLAY}"
else
- source /usr/share/portage/config/make.globals 2>/dev/null
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
-
- if [[ ${1} == "-o" ]]; then
- echo "${(@u)PORTDIR_OVERLAY}"
- else
- echo "${PORTDIR}"
- fi
+ echo "${PORTDIR}"
fi
+ fi
}
_parsereposconf() {
- local v f insection section arr
-
- for f in /usr/share/portage/config/repos.conf \
- /etc/portage/repos.conf \
- /etc/portage/repos.conf/*.conf; do
-
- [[ -f ${f} ]] || continue
- insection=0
- declare -A arr
- IFS='= '
-
- while read -r name value; do
- [[ -z ${name} || ${name} == '#'* ]] && continue
-
- if [[ (${name} == '['*']') && (-z ${value}) ]]; then
- value=${name//(\]|\[)}
- name="section"
- fi
- arr[${name}]=${value}
-
- if [[ ${insection} == 1 && ${name} == "section" ]]; then
- break
- elif [[ ${name} == "section" ]]; then
- [[ ${value} == ${1} ]] && insection=1
- secname+=(${value})
- elif [[ ${insection} == 1 ]]; then
- if [[ ${name} == ${2} ]]; then
- v=${value}
- fi
- fi
- continue
- done < ${f}
- done
-
- if [[ ${1} == "-l" ]]; then
- echo "${(@)secname}"
- else
- echo "${v}"
- fi
+ local v f insection section arr
+
+ for f in /usr/share/portage/config/repos.conf \
+ /etc/portage/repos.conf \
+ /etc/portage/repos.conf/*.conf; do
+
+ [[ -f ${f} ]] || continue
+ insection=0
+ declare -A arr
+ IFS='= '
+
+ while read -r name value; do
+ [[ -z ${name} || ${name} == '#'* ]] && continue
+
+ if [[ (${name} == '['*']') && (-z ${value}) ]]; then
+ value=${name//(\]|\[)}
+ name="section"
+ fi
+ arr[${name}]=${value}
+
+ if [[ ${insection} == 1 && ${name} == "section" ]]; then
+ break
+ elif [[ ${name} == "section" ]]; then
+ [[ ${value} == ${1} ]] && insection=1
+ secname+=(${value})
+ elif [[ ${insection} == 1 ]]; then
+ if [[ ${name} == ${2} ]]; then
+ v=${value}
+ fi
+ fi
+ continue
+ done < ${f}
+ done
+
+ if [[ ${1} == "-l" ]]; then
+ echo "${(@)secname}"
+ else
+ echo "${v}"
+ fi
}
_parsesetsconf() {
- [[ -d ${1} ]] || continue
-
- local v f places sections setsconf insection section arr
-
- if [[ -d ${1}/sets ]]; then
- setsconf=(${1}/sets/*.conf(N))
- [[ (($#setsconf > 0)) ]] && places=(${setsconf})
- elif [[ -f ${1}/sets.conf ]]; then
- places=(${1}/sets.conf)
- fi
-
- for f in ${(@)places}; do
- if [[ -r ${f} ]]; then
- insection=0
- declare -A arr
- IFS='= '
- while read -r name value; do
- [[ -z ${name} || ${name} == '#'* ]] && continue
-
- if [[ (${name} == '['*']') && (-z ${value}) ]]; then
- value=${name//(\]|\[)}
- name="section"
- fi
- arr[${name}]=${value}
-
- if [[ ${insection} == 1 && ${name} == "section" ]]; then
- [[ ${2} == "sets" ]] && [[ ! ${value} =~ "sets" ]] && sections+=(${value})
- insection=0
- elif [[ ${name} == "section" ]]; then
- [[ ${value} =~ "${1:t} sets" ]] && insection=1
- [[ ${2} == "sets" ]] && [[ ! ${value} =~ "sets" ]] && sections+=(${value})
- elif [[ ${insection} == 1 ]]; then
- [[ ${2} == "sets" ]] && continue
- if [[ ${name} == "directory" ]]; then
- v=${value}
- fi
- fi
- continue
- done < ${f}
+ [[ -d ${1} ]] || continue
+
+ local v f places sections setsconf insection section arr
+
+ if [[ -d ${1}/sets ]]; then
+ setsconf=(${1}/sets/*.conf(N))
+ [[ (($#setsconf > 0)) ]] && places=(${setsconf})
+ elif [[ -f ${1}/sets.conf ]]; then
+ places=(${1}/sets.conf)
+ fi
+
+ for f in ${(@)places}; do
+ if [[ -r ${f} ]]; then
+ insection=0
+ declare -A arr
+ IFS='= '
+ while read -r name value; do
+ [[ -z ${name} || ${name} == '#'* ]] && continue
+
+ if [[ (${name} == '['*']') && (-z ${value}) ]]; then
+ value=${name//(\]|\[)}
+ name="section"
fi
- done
-
- if [[ ${2} == "sets" ]]; then
- [[ ((${#sections} > 0)) ]] && echo ${(@)sections}
- else
- [[ ((${#v} > 0)) ]] && echo ${v:t}
+ arr[${name}]=${value}
+
+ if [[ ${insection} == 1 && ${name} == "section" ]]; then
+ [[ ${2} == "sets" ]] && [[ ! ${value} =~ "sets" ]] && sections+=(${value})
+ insection=0
+ elif [[ ${name} == "section" ]]; then
+ [[ ${value} =~ "${1:t} sets" ]] && insection=1
+ [[ ${2} == "sets" ]] && [[ ! ${value} =~ "sets" ]] && sections+=(${value})
+ elif [[ ${insection} == 1 ]]; then
+ [[ ${2} == "sets" ]] && continue
+ if [[ ${name} == "directory" ]]; then
+ v=${value}
+ fi
+ fi
+ continue
+ done < ${f}
fi
+ done
+
+ if [[ ${2} == "sets" ]]; then
+ [[ ((${#sections} > 0)) ]] && echo ${(@)sections}
+ else
+ [[ ((${#v} > 0)) ]] && echo ${v:t}
+ fi
}
_gentoo_packages_update_installed_sets() {
- local sets
- sets=($(</var/lib/portage/world_sets))
- if [[ ((${#sets} > 0)) ]]; then
- _wanted installed_sets expl 'installed set' compadd "$@" "${(o@)^sets}"
- fi
+ local sets
+ sets=($(</var/lib/portage/world_sets))
+ if [[ ((${#sets} > 0)) ]]; then
+ _wanted installed_sets expl 'installed set' compadd "$@" "${(o@)^sets}"
+ fi
}
_gentoo_packages_update_available_sets() {
- trees=($(_portdir -o) /etc/portage /usr/share/portage/config)
- for PORTDIR in ${(@)trees}; do
- if [[ -d ${PORTDIR} ]]; then
- setsdir="$(_parsesetsconf ${PORTDIR})"
- [[ ! -z "${setsdir}" ]] && setspath="${PORTDIR}/${setsdir}" || setspath="${PORTDIR}/sets"
- if [[ -d "${setspath}" ]]; then
- setsfiles=(${setspath}/*~*.conf(N))
- for set in ${setsfiles[@]}; do
- sets+=(${set}(:t))
- done
- sets+=($(_parsesetsconf ${PORTDIR} sets))
- fi
- fi
- done
- if [[ ((${#sets} > 0)) ]]; then
- _wanted available_sets expl 'available set' compadd "$@" "@${(o@)^sets}"
+ trees=($(_portdir -o) /etc/portage /usr/share/portage/config)
+ for PORTDIR in ${(@)trees}; do
+ if [[ -d ${PORTDIR} ]]; then
+ setsdir="$(_parsesetsconf ${PORTDIR})"
+ [[ ! -z "${setsdir}" ]] && setspath="${PORTDIR}/${setsdir}" || setspath="${PORTDIR}/sets"
+ if [[ -d "${setspath}" ]]; then
+ setsfiles=(${setspath}/*~*.conf(N))
+ for set in ${setsfiles[@]}; do
+ sets+=(${set}(:t))
+ done
+ sets+=($(_parsesetsconf ${PORTDIR} sets))
+ fi
fi
+ done
+ if [[ ((${#sets} > 0)) ]]; then
+ _wanted available_sets expl 'available set' compadd "$@" "@${(o@)^sets}"
+ fi
}
# Completion function to show useflags.
_gentoo_packages_update_useflag(){
- local flags trees
+ local flags trees
- flags=()
- trees=($(_portdir) $(_portdir -o))
+ flags=()
+ trees=($(_portdir) $(_portdir -o))
- for PORTDIR in ${trees[@]}; do
- [[ -r ${PORTDIR}/profiles/use.desc ]] &&
- flags+=(${${(M)${(f)"$(<$PORTDIR/profiles/use.desc)"}:#* - *}%% - *})
- [[ -r ${PORTDIR}/profiles/use.local.desc ]] &&
- flags+=(${${${(M)${(f)"$(<$PORTDIR/profiles/use.local.desc)"}#* - *}%% - *}#*:})
- done
+ for PORTDIR in ${trees[@]}; do
+ [[ -r ${PORTDIR}/profiles/use.desc ]] &&
+ flags+=(${${(M)${(f)"$(<$PORTDIR/profiles/use.desc)"}:#* - *}%% - *})
+ [[ -r ${PORTDIR}/profiles/use.local.desc ]] &&
+ flags+=(${${${(M)${(f)"$(<$PORTDIR/profiles/use.local.desc)"}#* - *}%% - *}#*:})
+ done
- compadd $flags
+ compadd $flags
}
_gentoo_packages_update_active_useflag(){
- local flags USE
- var=USE
- [[ -z ${(P)var} && -r /etc/portage/make.conf ]] &&
- local $var="`. /etc/portage/make.conf 2>/dev/null; echo ${(P)var}`"
- [[ -z ${(P)var} && -r /etc/make.conf ]] &&
- local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`"
- flags=(${${${=USE}%-*}%\\*})
- compadd $flags
+ local flags USE
+ var=USE
+ [[ -z ${(P)var} && -r /etc/portage/make.conf ]] &&
+ local $var="`. /etc/portage/make.conf 2>/dev/null; echo ${(P)var}`"
+ [[ -z ${(P)var} && -r /etc/make.conf ]] &&
+ local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`"
+ flags=(${${${=USE}%-*}%\\*})
+ compadd $flags
}
_gentoo_packages_update_category(){
- local trees category
+ local trees category
- trees=($(_portdir) $(_portdir -o))
- category=( $trees/*-*(/:t) )
- _wanted cat_packages expl 'category' compadd "$@" $category
+ trees=($(_portdir) $(_portdir -o))
+ category=( $trees/*-*(/:t) )
+ _wanted cat_packages expl 'category' compadd "$@" $category
}
_gentoo_packages_update_installed(){
@@ -209,101 +208,102 @@ _gentoo_packages_update_installed(){
}
_gentoo_packages_update_installed_versions(){
- local installed_list installed_portage expl
+ local installed_list installed_portage expl
- installed_portage=(/var/db/pkg/*-*/*)
- _wanted packages expl 'package' compadd "$@" ${installed_portage:t}
+ 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
+ installed_list=(${installed_portage##*/pkg/})
+ _wanted cat_packages expl 'category/package' _multi_parts "$@" / installed_list
}
_gentoo_packages_update_available_pkgnames_only(){
- local trees packages
+ local trees packages
- trees=($(_portdir) $(_portdir -o))
+ trees=($(_portdir) $(_portdir -o))
- packages=($trees/*-*/*(:t))
- _wanted packages expl 'package' compadd - "${(@)packages}"
+ packages=($trees/*-*/*(:t))
+ _wanted packages expl 'package' compadd - "${(@)packages}"
}
_gentoo_packages_update_available(){
- local trees category packages pkg expl
-
- trees=($(_portdir) $(_portdir -o))
- 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
+ local trees category packages pkg expl
+
+ trees=($(_portdir) $(_portdir -o))
+ 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
-
- PORTDIR=$(_portdir)
- PORTDIR_OVERLAY=$(_portdir -o)
-
- 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
+ local var overlay_ebuilds portage_ebuilds expl trees category
+
+ PORTDIR=$(_portdir)
+ PORTDIR_OVERLAY=$(_portdir -o)
+
+ 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/portage/make.conf ]] &&
- local PKGDIR="`. /etc/portage/make.conf 2>/dev/null; echo $PKGDIR`"
- [[ -z $PKGDIR && -r /etc/make.conf ]] &&
- local PKGDIR="`. /etc/make.conf 2>/dev/null; echo $PKGDIR`"
- [[ -z $PKGDIR && -r /usr/share/portage/config/make.globals ]] &&
- local PKGDIR="`. /usr/share/portage/config/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"
+ [[ -z $PKGDIR && -r /etc/portage/make.conf ]] &&
+ local PKGDIR="`. /etc/portage/make.conf 2>/dev/null; echo $PKGDIR`"
+ [[ -z $PKGDIR && -r /etc/make.conf ]] &&
+ local PKGDIR="`. /etc/make.conf 2>/dev/null; echo $PKGDIR`"
+ [[ -z $PKGDIR && -r /usr/share/portage/config/make.globals ]] &&
+ local PKGDIR="`. /usr/share/portage/config/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|_sets|)|available(_versions|_sets|_pkgnames_only|)|binary|category|(active_|)useflag) ]] || {
- _message "unknown command: $command"
- return
- }
- [[ "$pkgset" == (installed(_versions|_sets|)|available(_versions|_sets|_pkgnames_only|)|binary|category|(active_|)useflag) ]] || {
- pkgset="$command"
- }
- expl=("${(@)argv[1,-2]}")
- _gentoo_packages_update_$pkgset
+ 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|_sets|)|available(_versions|_sets|_pkgnames_only|)|binary|category|(active_|)useflag) ]] || {
+ _message "unknown command: $command"
+ return
+ }
+ [[ "$pkgset" == (installed(_versions|_sets|)|available(_versions|_sets|_pkgnames_only|)|binary|category|(active_|)useflag) ]] || {
+ 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
+ oldp=( "$1"(mw+1) )
+ (( $#oldp )) && return 0
}
-
_gentoo_packages "$@"
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_gentoolkit b/src/_gentoolkit
index 9ea7cc2..0b0d956 100644
--- a/src/_gentoolkit
+++ b/src/_gentoolkit
@@ -11,17 +11,15 @@
# revdep-rebuild (partial)
# eread *nothing todo*
-
# XXX: shouldn't this go to _gentoo_package?
_packages () {
- if compset -P '(\\|)(>=|<=|<|>|=)' ; then
- _gentoo_packages ${*/(#m)(installed|available)/${MATCH}_versions}
- else
- _gentoo_packages $*
- fi
+ if compset -P '(\\|)(>=|<=|<|>|=)'; then
+ _gentoo_packages ${*/(#m)(installed|available)/${MATCH}_versions}
+ else
+ _gentoo_packages $*
+ fi
}
-
_euse () {
local state tmp start_args suboptions_args
start_args=(
@@ -40,21 +38,21 @@ _euse () {
{'(--global)-g','(-g)--global'}'[show only global use flags]'
{'(--local)-l','(-l)--local'}'[show only local use flags]'
)
- if (( CURRENT == 2 ));then
+ if (( CURRENT == 2 )); then
_arguments -s $start_args
- elif (( CURRENT == 3 ));then
+ elif (( CURRENT == 3 )); then
case "$words[2]" in
-i|--info|-a|--active)
- _arguments -s $suboptions_args \
- '*:useflags:_gentoo_packages useflag' && ret=0
+ _arguments -s $suboptions_args \
+ '*:useflags:_gentoo_packages useflag' && ret=0
;;
-E|--enable)
- _arguments \
- '*:useflags:_gentoo_packages useflag' && ret=0
+ _arguments \
+ '*:useflags:_gentoo_packages useflag' && ret=0
;;
-D|--disable)
- _arguments \
- '*:active useflags:_gentoo_packages active_useflag' && ret=0
+ _arguments \
+ '*:active useflags:_gentoo_packages active_useflag' && ret=0
esac
else
_arguments \
@@ -62,7 +60,6 @@ _euse () {
fi
}
-
_equery () {
# Based off of X/_xauth.
local state context line expl ret=1
@@ -81,7 +78,6 @@ _equery () {
'(-o --overlay-tree)'{-o,--overlay-tree}'[also search in overlay tree]'
)
-
_arguments -s $start_args \
'*::command:->command' && ret=0
@@ -89,321 +85,318 @@ _equery () {
tmp="$state"
state=
case "$tmp" in
- command)
- if (( CURRENT == 1 )); then
- state=subcommands
- else
- cmd="$words[1]"
- curcontext="${curcontext%:*:*}:equery-${cmd}:"
- case "$cmd" in
- belongs|b)
- _arguments \
- '(-e --early-out)'{-e,--early-out}'[stop when first match found]' \
- '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
- '(-n --name-only)'{-n,--name-only}"[don't print the version]" \
- '*:file:_files' && ret=0
- ;;
- changes|c)
- _arguments \
- '(-l --latest)'{-l,--latest}'[only display latest ChangeLog entry]' \
- '(-f --full)'{-f,--full}'[display full ChangeLog entry]' \
- '--limit[limit the number of entries displayed (with --full)]:number:' \
- '--from[which version to display from]' \
- '--to[which version to display to]' \
- ':portage:_packages available' && ret=0
- ;;
- check|k)
- _arguments \
- '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
- '(-o --only-failures)'{-o,--only-failures}'[only display packages that do not pass]' \
- ':portage:_packages installed' && ret=0
- ;;
- depends|d)
- _arguments \
- '(-a --all-packages)'{-a,--all-packages}'[search in all available packages (slow)]:all packages:->packages' \
- '(-D --indirect)'{-D,--indirect}'[search indirect dependencies (VERY slow)]' \
- '--depth[limit indirect dependency tree to specified depth]:number:' \
- '*:package:_packages installed' && ret=0
- ;;
- depgraph|g)
- _arguments \
- '(-A --no-atom)'{-A,--no-atom}'[do not show dependency atom]' \
- '(-M --no-mask)'{-M,--no-mask}'[do not show masking status]' \
- '(-U --no-useflags)'{-U,--no-useflags}'[do not show USE flags]' \
- '(-l --linear)'{-l,--linear}'[do not use fancy formatting]' \
- ':package:_packages installed' && ret=0
- ;;
- files|f)
- _arguments \
- '(-m --md5sum)'{-m,--md5sum}'[include MD5 sum in output]' \
- '(-s --timestamp)'{-s,--timestamp}'[include timestamp in output]' \
- '(-t --type)'{-t,--type}'[include file type in output]' \
- '--tree[display results in a tree (turns off other options)]' \
- '--filter=[filter output]:filter(s):_values -s , '' dir obj sym dev fifo path conf cmd doc man info' \
- ':installed pkgname:_packages installed' && ret=0
- ;;
- has|a)
- _arguments \
- $common_args \
- '(-F --format)'{-F,--format}'[a format template (see man page)]:format template' \
- ':KEY:' \
- ':VALUE:' && ret=0
- ;;
- hasuse|h)
- _arguments \
- $common_args \
- '(-F --format)'{-F,--format}'[specify a custom output format]:format template' \
- ':useflag:_gentoo_packages useflag' && ret=0
- ;;
- list|l)
- _arguments \
- $common_args \
- '(-d --duplicates)'{-d,--duplicates}'[list only installed duplicate packages]' \
- '(-b --binpkgs-missing)'{-b,--binpkgs-missing}'[list only installed packages without a corresponding binary package]' \
- '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
- '(-m --mask-reason)'{-m,--mask-reason}'[include reason for package mask]' \
- '(-F --format)'{-F,--format}'[a format template (see man page)]:format template' \
- ': :_guard "^--*" pattern' && ret=0
- ;;
- meta|m)
- _arguments \
- '(-d --description)'{-d,--description}'[show an extended package description]' \
- '(-H --herd)'{-H,--herd}'[show the herd(s) for the package]' \
- '(-k --keywords)'{-k,--keywords}'[show keywords for all matching package versions]' \
- '(-l --license)'{-l,--license}'[show licenses for the best maching version]' \
- '(-m --maintainer)'{-m,--maintainer}'[show the maintainer(s) for the package]' \
- '(-S --stablreq)'{-S,--stablreq}'[show STABLEREQ arches (ccs) for all matching package versions]' \
- '(-u --useflags)'{-u,--useflags}'[show per-package USE flag descriptions]' \
- '(-U --upstream)'{-U,--upstream}'[show packages upstream information]' \
- '(-x --xml)'{-x,--xml}'[show the plain metadata.xml file]' \
- ':package:_packages available' && ret=0
- ;;
- size|s)
- _arguments \
- '(-b --bytes)'{-b,--bytes}'[report size in bytes]' \
- '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
- ':package:_packages installed' && ret=0
- ;;
- uses|u)
- _arguments \
- '(-a --all)'{-a,--all}'[include non-installed packages]' \
- '(-i --ignore-linguas)'{-i,--ignore-linguas}"[don't show linguas USE flags]" \
- ":portage:_packages installed" && ret=0
- ;;
- which|w)
- _arguments \
- '(-m --include-masked)'{-m,--include-masked}'[return highest version ebuild available]' \
- '(-e --ebuild)'{-e,--ebuild}'[print the ebuild]' \
- ':portage:_packages available' && ret=0
- ;;
- *)
- _message 'command not found'
- ;;
- esac
- fi
- ;;
- subcommands)
- tmp=(
- {belongs,b}'[list all packages owning file(s)]'
- {check,k}'[check MD5sums and timestamps of package]'
- {changes,c}'[shows ChangeLog for specified package]'
- {depends,d}'[list all packages depending on specified package]'
- {depgraph,g}'[display a dependency tree for package]'
- {files,f}'[list files owned by package]'
- {hasuse,h}'[list all packages with specified useflag]'
- {list,l}'[list all packages matching pattern]'
- {size,s}'[print size of files contained in package]'
- {uses,u}'[display USE flags for package]'
- {which,w}'[print full path to ebuild for package]'
- {has,a}'[list all packages matching ENVIRONMENT data stored in /var/db/pkg]'
- {keywords,y}'[display keywords for specified PKG]'
- {meta,m}'[display metadata about PKG]'
- )
- _values 'equery command' $tmp && ret=0
- ;;
+ command)
+ if (( CURRENT == 1 )); then
+ state=subcommands
+ else
+ cmd="$words[1]"
+ curcontext="${curcontext%:*:*}:equery-${cmd}:"
+ case "$cmd" in
+ belongs|b)
+ _arguments \
+ '(-e --early-out)'{-e,--early-out}'[stop when first match found]' \
+ '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
+ '(-n --name-only)'{-n,--name-only}"[don't print the version]" \
+ '*:file:_files' && ret=0
+ ;;
+ changes|c)
+ _arguments \
+ '(-l --latest)'{-l,--latest}'[only display latest ChangeLog entry]' \
+ '(-f --full)'{-f,--full}'[display full ChangeLog entry]' \
+ '--limit[limit the number of entries displayed (with --full)]:number:' \
+ '--from[which version to display from]' \
+ '--to[which version to display to]' \
+ ':portage:_packages available' && ret=0
+ ;;
+ check|k)
+ _arguments \
+ '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
+ '(-o --only-failures)'{-o,--only-failures}'[only display packages that do not pass]' \
+ ':portage:_packages installed' && ret=0
+ ;;
+ depends|d)
+ _arguments \
+ '(-a --all-packages)'{-a,--all-packages}'[search in all available packages (slow)]:all packages:->packages' \
+ '(-D --indirect)'{-D,--indirect}'[search indirect dependencies (VERY slow)]' \
+ '--depth[limit indirect dependency tree to specified depth]:number:' \
+ '*:package:_packages installed' && ret=0
+ ;;
+ depgraph|g)
+ _arguments \
+ '(-A --no-atom)'{-A,--no-atom}'[do not show dependency atom]' \
+ '(-M --no-mask)'{-M,--no-mask}'[do not show masking status]' \
+ '(-U --no-useflags)'{-U,--no-useflags}'[do not show USE flags]' \
+ '(-l --linear)'{-l,--linear}'[do not use fancy formatting]' \
+ ':package:_packages installed' && ret=0
+ ;;
+ files|f)
+ _arguments \
+ '(-m --md5sum)'{-m,--md5sum}'[include MD5 sum in output]' \
+ '(-s --timestamp)'{-s,--timestamp}'[include timestamp in output]' \
+ '(-t --type)'{-t,--type}'[include file type in output]' \
+ '--tree[display results in a tree (turns off other options)]' \
+ '--filter=[filter output]:filter(s):_values -s , '' dir obj sym dev fifo path conf cmd doc man info' \
+ ':installed pkgname:_packages installed' && ret=0
+ ;;
+ has|a)
+ _arguments \
+ $common_args \
+ '(-F --format)'{-F,--format}'[a format template (see man page)]:format template' \
+ ':KEY:' \
+ ':VALUE:' && ret=0
+ ;;
+ hasuse|h)
+ _arguments \
+ $common_args \
+ '(-F --format)'{-F,--format}'[specify a custom output format]:format template' \
+ ':useflag:_gentoo_packages useflag' && ret=0
+ ;;
+ list|l)
+ _arguments \
+ $common_args \
+ '(-d --duplicates)'{-d,--duplicates}'[list only installed duplicate packages]' \
+ '(-b --binpkgs-missing)'{-b,--binpkgs-missing}'[list only installed packages without a corresponding binary package]' \
+ '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
+ '(-m --mask-reason)'{-m,--mask-reason}'[include reason for package mask]' \
+ '(-F --format)'{-F,--format}'[a format template (see man page)]:format template' \
+ ': :_guard "^--*" pattern' && ret=0
+ ;;
+ meta|m)
+ _arguments \
+ '(-d --description)'{-d,--description}'[show an extended package description]' \
+ '(-H --herd)'{-H,--herd}'[show the herd(s) for the package]' \
+ '(-k --keywords)'{-k,--keywords}'[show keywords for all matching package versions]' \
+ '(-l --license)'{-l,--license}'[show licenses for the best maching version]' \
+ '(-m --maintainer)'{-m,--maintainer}'[show the maintainer(s) for the package]' \
+ '(-S --stablreq)'{-S,--stablreq}'[show STABLEREQ arches (ccs) for all matching package versions]' \
+ '(-u --useflags)'{-u,--useflags}'[show per-package USE flag descriptions]' \
+ '(-U --upstream)'{-U,--upstream}'[show packages upstream information]' \
+ '(-x --xml)'{-x,--xml}'[show the plain metadata.xml file]' \
+ ':package:_packages available' && ret=0
+ ;;
+ size|s)
+ _arguments \
+ '(-b --bytes)'{-b,--bytes}'[report size in bytes]' \
+ '(-f --full-regex)'{-f,--full-regex}'[supplied query is a regex]:pattern:' \
+ ':package:_packages installed' && ret=0
+ ;;
+ uses|u)
+ _arguments \
+ '(-a --all)'{-a,--all}'[include non-installed packages]' \
+ '(-i --ignore-linguas)'{-i,--ignore-linguas}"[don't show linguas USE flags]" \
+ ":portage:_packages installed" && ret=0
+ ;;
+ which|w)
+ _arguments \
+ '(-m --include-masked)'{-m,--include-masked}'[return highest version ebuild available]' \
+ '(-e --ebuild)'{-e,--ebuild}'[print the ebuild]' \
+ ':portage:_packages available' && ret=0
+ ;;
+ *)
+ _message 'command not found'
+ ;;
+ esac
+ fi
+ ;;
+ subcommands)
+ tmp=(
+ {belongs,b}'[list all packages owning file(s)]'
+ {check,k}'[check MD5sums and timestamps of package]'
+ {changes,c}'[shows ChangeLog for specified package]'
+ {depends,d}'[list all packages depending on specified package]'
+ {depgraph,g}'[display a dependency tree for package]'
+ {files,f}'[list files owned by package]'
+ {hasuse,h}'[list all packages with specified useflag]'
+ {list,l}'[list all packages matching pattern]'
+ {size,s}'[print size of files contained in package]'
+ {uses,u}'[display USE flags for package]'
+ {which,w}'[print full path to ebuild for package]'
+ {has,a}'[list all packages matching ENVIRONMENT data stored in /var/db/pkg]'
+ {keywords,y}'[display keywords for specified PKG]'
+ {meta,m}'[display metadata about PKG]'
+ )
+ _values 'equery command' $tmp && ret=0
+ ;;
esac
done
}
-
_eclean_wrapper () {
- local global_opts pkg_opts dist_opts
+ local global_opts pkg_opts dist_opts
- global_opts=(
- '(-C --nocolor)'{-C,--nocolor}'[turns off colors]'
- '(-d,--destructive)'{-d,--destructive}'[only keep the minimum for a reinstallation]'
- '(-e,--exclude-file)'{-e,--exclude-file}'[path to the exclusion file]:filename:_files'
- '(-i,--interactive)'{-i,--interactive}'[ask confirmation before deletions]'
- '(-n,--package-names)'{-n,--package-names}'[protect all versions (when --destructive)]'
- '(-p,--pretend)'{-p,--pretend}'[only display what would be cleaned]'
- '(-q,--quiet)'{-q,--quiet}'[minimal output]'
- '(-t,--time-limit)'{-t,--time-limit}'[don’t delete files modified since <time>]:time:_eclean_time'
- '(: -)'{-h,--help}'[show help]'
- '(: -)'{-V,--version}'[show version]'
- )
- dist_opts=(
- '(-s,--size-limit)'{-s,--size-limit}'[do not delete disfiles bigger than <size>]:size:_eclean_size'
- '(-f,--fetch-restricted)'{-f,--fetch-restricted}'[protect fetch-restricted files]'
- )
- # XXX: If you add options here make sure that it'll work.
- # since there isn't any option *right* now, $pkg_opts
- # is never used.
- pkg_opts=()
+ global_opts=(
+ '(-C --nocolor)'{-C,--nocolor}'[turns off colors]'
+ '(-d,--destructive)'{-d,--destructive}'[only keep the minimum for a reinstallation]'
+ '(-e,--exclude-file)'{-e,--exclude-file}'[path to the exclusion file]:filename:_files'
+ '(-i,--interactive)'{-i,--interactive}'[ask confirmation before deletions]'
+ '(-n,--package-names)'{-n,--package-names}'[protect all versions (when --destructive)]'
+ '(-p,--pretend)'{-p,--pretend}'[only display what would be cleaned]'
+ '(-q,--quiet)'{-q,--quiet}'[minimal output]'
+ '(-t,--time-limit)'{-t,--time-limit}'[don’t delete files modified since <time>]:time:_eclean_time'
+ '(: -)'{-h,--help}'[show help]'
+ '(: -)'{-V,--version}'[show version]'
+ )
+ dist_opts=(
+ '(-s,--size-limit)'{-s,--size-limit}'[do not delete disfiles bigger than <size>]:size:_eclean_size'
+ '(-f,--fetch-restricted)'{-f,--fetch-restricted}'[protect fetch-restricted files]'
+ )
+ # XXX: If you add options here make sure that it'll work.
+ # since there isn't any option *right* now, $pkg_opts
+ # is never used.
+ pkg_opts=()
- # check which kind of eclean command we run.
- case "$words[1]" in
- eclean-pkg)
- _arguments -s $global_opts $pkg_opts &&
- return 0
- ;;
- eclean-dist)
- _arguments -s $global_opts $dist_opts &&
- return 0
- ;;
- eclean)
- # eclean. complete only specifics options if an action has been given,
- # global_opts and packages|distfiles otherwhise.
- if (( $words[(I)(packages)] )); then
- # Currently no options so return 0
- #_values "packages options" $pkg_opts &&
- return 0
- elif (( $words[(I)(distfiles)] )); then
- _values "distfiles options" $dist_opts &&
- return 0
- else
- _arguments -s $global_opts
- # complete packages|distfiles only if CURRENT-1 don't need an arg
- if [[ ! $words[CURRENT-1] =~ -(e|-exclude-file|t|-time-limit|s|-size-limit|h|-help|v|-version) ]]; then
- _values 'eclean command' \
- 'packages[clean outdated binary packages]' \
- 'distfiles[clean outdated packages sources files]' &&
- return 0
- fi
- fi
- ;;
- esac
+ # check which kind of eclean command we run.
+ case "$words[1]" in
+ eclean-pkg)
+ _arguments -s $global_opts $pkg_opts && return 0
+ ;;
+ eclean-dist)
+ _arguments -s $global_opts $dist_opts && return 0
+ ;;
+ eclean)
+ # eclean. complete only specifics options if an action has been given,
+ # global_opts and packages|distfiles otherwhise.
+ if (( $words[(I)(packages)] )); then
+ # Currently no options so return 0
+ #_values "packages options" $pkg_opts &&
+ return 0
+ elif (( $words[(I)(distfiles)] )); then
+ _values "distfiles options" $dist_opts &&
+ return 0
+ else
+ _arguments -s $global_opts
+ # complete packages|distfiles only if CURRENT-1 don't need an arg
+ if [[ ! $words[CURRENT-1] =~ -(e|-exclude-file|t|-time-limit|s|-size-limit|h|-help|v|-version) ]]; then
+ _values 'eclean command' \
+ 'packages[clean outdated binary packages]' \
+ 'distfiles[clean outdated packages sources files]' &&
+ return 0
+ fi
+ fi
+ ;;
+ esac
}
+
_eclean_time () {
- # adapted from _chmod
- compset -P '*'
- suf=( -S '' )
- _alternative -O suf \
- 'number:number:(0 1 2 3 4 5 6 7 8 9)' \
- 'time_unit:time_unit:((y\:year m\:month w\:week d\:day h\:hour))' &&
- return 0
+ # adapted from _chmod
+ compset -P '*'
+ suf=( -S '' )
+ _alternative -O suf \
+ 'number:number:(0 1 2 3 4 5 6 7 8 9)' \
+ 'time_unit:time_unit:((y\:year m\:month w\:week d\:day h\:hour))' &&
+ return 0
}
+
_eclean_size () {
- # adapted from _chmod
- compset -P '*'
- suf=( -S '' )
- _alternative -O suf \
- 'number:number:(0 1 2 3 4 5 6 7 8 9)' \
- 'time_unit:time_unit:((G\:gigabytes M\:megabytes K\:kilobytes B\:bytes))' &&
- return 0
+ # adapted from _chmod
+ compset -P '*'
+ suf=( -S '' )
+ _alternative -O suf \
+ 'number:number:(0 1 2 3 4 5 6 7 8 9)' \
+ 'time_unit:time_unit:((G\:gigabytes M\:megabytes K\:kilobytes B\:bytes))' &&
+ return 0
}
-
_epkginfo () {
- if (( CURRENT == 2 )); then
- _arguments -s '*:package:_gentoo_packages available'
- fi
+ if (( CURRENT == 2 )); then
+ _arguments -s '*:package:_gentoo_packages available'
+ fi
}
-
_genpkgindex () {
- _arguments -s \
- '(: -)'{-h,--help}'[Display help and exit]' \
- '(-h --help -q --quiet -v --verbose)'{-q,--quiet}'[Be quiet]' \
- '(-h --help -q --quiet -v --verbose)'{-v,--verbose}'[Be verbose]' \
- '(-h --help -c --compress)'{-c,--compress}'[Compresses the generated metadata with bzip2]' \
- '(-h --help -P --pkgdir)'{-P,--pkgdir}'[Set the base location of the binary packages (default $PKGDIR)]:file:_files'
+ _arguments -s \
+ '(: -)'{-h,--help}'[Display help and exit]' \
+ '(-h --help -q --quiet -v --verbose)'{-q,--quiet}'[Be quiet]' \
+ '(-h --help -q --quiet -v --verbose)'{-v,--verbose}'[Be verbose]' \
+ '(-h --help -c --compress)'{-c,--compress}'[Compresses the generated metadata with bzip2]' \
+ '(-h --help -P --pkgdir)'{-P,--pkgdir}'[Set the base location of the binary packages (default $PKGDIR)]:file:_files'
}
-
_glsa-check () {
- local actions
+ local actions
- actions=(-l --list -d --dump --print -t --test -p --pretend -f --fix -i --inject -h --help -V --version -m --mail)
+ actions=(-l --list -d --dump --print -t --test -p --pretend -f --fix -i --inject -h --help -V --version -m --mail)
- _arguments -s \
- "($actions)"{-l,--list}'[list all unapplied GLSA]:glsa_id:_glsa_id' \
- "($actions)"{-d,--dump,--print}'[show all information about the given GLSA]:glsa_id:_glsa_id' \
- "($actions)"{-t,--test}'[test if this system is affected by the given GLSA]:glsa_id:_glsa_id' \
- "($actions)"{-p,--pretend}'[show the necessary commands to apply this GLSA]:glsa_id:_glsa_id' \
- "($actions)"{-f,--fix}'[try to auto-apply this GLSA (experimental)]:glsa_id:_glsa_id' \
- "($actions)"{-i,--inject}'[inject the given GLSA into the checkfile]:glsa_id:_glsa_id' \
- '(-n --nocolor)'{-n,--nocolor}'[disable colors (option)]' \
- '(: -)'{-h,--help}'[Show help message]' \
- '(: -)'{-V,--version}'[some information about this tool]' \
- '(-v --verbose)'{-v,--verbose}'[print more messages (option)]' \
- '(-c --cve)'{-c,--cve}'[show CAN ids in listing mode (option)]' \
- "($actions)"{-m,--mail}'[send a mail with the given GLSAs to the administrator]:glsa_id:_glsa_id'
+ _arguments -s \
+ "($actions)"{-l,--list}'[list all unapplied GLSA]:glsa_id:_glsa_id' \
+ "($actions)"{-d,--dump,--print}'[show all information about the given GLSA]:glsa_id:_glsa_id' \
+ "($actions)"{-t,--test}'[test if this system is affected by the given GLSA]:glsa_id:_glsa_id' \
+ "($actions)"{-p,--pretend}'[show the necessary commands to apply this GLSA]:glsa_id:_glsa_id' \
+ "($actions)"{-f,--fix}'[try to auto-apply this GLSA (experimental)]:glsa_id:_glsa_id' \
+ "($actions)"{-i,--inject}'[inject the given GLSA into the checkfile]:glsa_id:_glsa_id' \
+ '(-n --nocolor)'{-n,--nocolor}'[disable colors (option)]' \
+ '(: -)'{-h,--help}'[Show help message]' \
+ '(: -)'{-V,--version}'[some information about this tool]' \
+ '(-v --verbose)'{-v,--verbose}'[print more messages (option)]' \
+ '(-c --cve)'{-c,--cve}'[show CAN ids in listing mode (option)]' \
+ "($actions)"{-m,--mail}'[send a mail with the given GLSAs to the administrator]:glsa_id:_glsa_id'
}
+
# glsa-list can contain an arbitrary number of GLSA ids,
# filenames containing GLSAs or the special identifiers
# 'all', 'new' and 'affected'
_glsa_id () {
-# XXX: we'll avoid displaying GLSA ids, because the ratio use/noise
-# will be low. May be we should display only the X previous GLSA,
-# or GLSA ids of the X last month.
-#
-# start to look at /usr/lib/gentoolkit/pym/glsa.py if GLSA_DIR is still
-# PORTDIR + "metadata/glsa/"
-# and then get the list (it's only xml files in GLSA_DIR, easy!)
+ # XXX: we'll avoid displaying GLSA ids, because the ratio use/noise
+ # will be low. May be we should display only the X previous GLSA,
+ # or GLSA ids of the X last month.
+ #
+ # start to look at /usr/lib/gentoolkit/pym/glsa.py if GLSA_DIR is still
+ # PORTDIR + "metadata/glsa/"
+ # and then get the list (it's only xml files in GLSA_DIR, easy!)
- compadd 'all' 'new' 'affected'
- _files
+ compadd 'all' 'new' 'affected'
+ _files
}
-
_revdep-rebuild () {
- if (( $words[(I)(--)] )); then
- # here it's no more revdep-rebuild options, but emerge options that are called
- # FIXME: not working yet. need to load the _portage file
- _arguments -s '*:portage:_portage --emerge $@' && return 0
- fi
+ if (( $words[(I)(--)] )); then
+ # here it's no more revdep-rebuild options, but emerge options that are called
+ # FIXME: not working yet. need to load the _portage file
+ _arguments -s '*:portage:_portage --emerge $@' && return 0
+ fi
- _arguments -s \
- '(-C --nocolor)'{-C,--nocolor}'[Turn off colored output]' \
- '(-d --debug)'{-d,--debug}'[Print way too much information (uses bash set -xv)]' \
- '(-e --exact)'{-e,--exact}'[Emerge based on exact package version]' \
- '(: -)'{-h,--help}'[Print help]' \
- '(-i --ignore)'{-i,--ignore}'[Ignore temporary files from previous runs]' \
- '(-k --keep-temp)'{-k,--keep-temp}'[Do not delete temporary files on exit]' \
- '(-L --library)'{-L,--library}'[<NAME> Emerge existing packages that use the library with NAME]:file:_files' \
- '(-l --no-ld-path)'{-l,--no-ld-path}'[Do not set LD_LIBRARY_PATH]' \
- '(-o --no-order)'{-o,--no-order}'[Do not check the build order (Saves time, but may cause breakage)]' \
- '(-p --pretend)'{-p,--pretend}'[Do a trial run without actually emerging anything (also passed to emerge command)]' \
- '(-P --no-progress)'{-P,--no-progress}'[Turn off the progress meter]' \
- '(-q --quiet)'{-q,--quiet}'[Be less verbose (also passed to emerge command)]' \
- '(-v --verbose)'{-v,--verbose}'[Be more verbose (also passed to emerge command)]' \
- '(-u --no-util)'{-u,--no-util}'[<UTIL> Do not use features provided by UTIL]:file:_files'
- # XXX: does someone really use -u|--no-util option?
- # we can check packages installed (like portage-utils etc) to see
- # which "UTIL" is avaiable.
+ _arguments -s \
+ '(-C --nocolor)'{-C,--nocolor}'[Turn off colored output]' \
+ '(-d --debug)'{-d,--debug}'[Print way too much information (uses bash set -xv)]' \
+ '(-e --exact)'{-e,--exact}'[Emerge based on exact package version]' \
+ '(: -)'{-h,--help}'[Print help]' \
+ '(-i --ignore)'{-i,--ignore}'[Ignore temporary files from previous runs]' \
+ '(-k --keep-temp)'{-k,--keep-temp}'[Do not delete temporary files on exit]' \
+ '(-L --library)'{-L,--library}'[<NAME> Emerge existing packages that use the library with NAME]:file:_files' \
+ '(-l --no-ld-path)'{-l,--no-ld-path}'[Do not set LD_LIBRARY_PATH]' \
+ '(-o --no-order)'{-o,--no-order}'[Do not check the build order (Saves time, but may cause breakage)]' \
+ '(-p --pretend)'{-p,--pretend}'[Do a trial run without actually emerging anything (also passed to emerge command)]' \
+ '(-P --no-progress)'{-P,--no-progress}'[Turn off the progress meter]' \
+ '(-q --quiet)'{-q,--quiet}'[Be less verbose (also passed to emerge command)]' \
+ '(-v --verbose)'{-v,--verbose}'[Be more verbose (also passed to emerge command)]' \
+ '(-u --no-util)'{-u,--no-util}'[<UTIL> Do not use features provided by UTIL]:file:_files'
+ # XXX: does someone really use -u|--no-util option?
+ # we can check packages installed (like portage-utils etc) to see
+ # which "UTIL" is avaiable.
}
-
case "$service" in
- euse)
- _euse "$@" && return 0
+ euse)
+ _euse "$@" && return 0
;;
- equery)
- _equery "$@" && return 0
+ equery)
+ _equery "$@" && return 0
;;
- eclean*)
- _eclean_wrapper "$@" && return 0
+ eclean*)
+ _eclean_wrapper "$@" && return 0
;;
- epkginfo)
- _epkginfo "$@" && return 0
+ epkginfo)
+ _epkginfo "$@" && return 0
;;
- genpkgindex)
- _genpkgindex "$@" && return 0
+ genpkgindex)
+ _genpkgindex "$@" && return 0
;;
- glsa-check)
- _glsa-check "$@" && return 0
+ glsa-check)
+ _glsa-check "$@" && return 0
;;
- revdep-rebuild)
- _revdep-rebuild "$@" && return 0
+ revdep-rebuild)
+ _revdep-rebuild "$@" && return 0
;;
esac
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_layman b/src/_layman
index 01c1333..bf22ded 100644
--- a/src/_layman
+++ b/src/_layman
@@ -1,51 +1,59 @@
#compdef layman
# layman-1.1.1
-#
+
local arguments actions_args actions global_opts add_actions
+
_layman_remote_overlays() {
- local layman_list_overlays
- layman_list_overlays=(${(S)${${(f)"$(layman -k -N -L 2>/dev/null)"}//\[*}#\* })
- compadd "$@" ${(kv)=layman_list_overlays} "ALL"
+ local layman_list_overlays
+ layman_list_overlays=(${(S)${${(f)"$(layman -k -N -L 2>/dev/null)"}//\[*}#\* })
+ compadd "$@" ${(kv)=layman_list_overlays} "ALL"
}
+
_layman_local_overlays() {
- local layman_list_overlays
- layman_list_overlays=(${(S)${${(f)"$(layman -N -l)"}//\[*}#\* })
- compadd "$@" ${(kv)=layman_list_overlays} "ALL"
+ local layman_list_overlays
+ layman_list_overlays=(${(S)${${(f)"$(layman -N -l)"}//\[*}#\* })
+ compadd "$@" ${(kv)=layman_list_overlays} "ALL"
}
+
actions=(
- --delete -d
- --sync -s
- --info -i
- --sync-all -S
- --list -L
- --list-local -l
- --fetch -f
+ --delete -d
+ --sync -s
+ --info -i
+ --sync-all -S
+ --list -L
+ --list-local -l
+ --fetch -f
)
global_opts=(
- '(--config -c)'{-c,--config}'[Select an alternative configuration file]:configuration file:_files'
- '(--overlays -o)'{-o,--overlays}'[Specifies the location of additional overlay lists]:overlay url:_urls'
- '(--nofetch -n)'{-n,--nofetch}'[Prevents from automatically fetching the remote lists of overlays]'
- '(--nocheck -k)'{-k,--nocheck}'[Prevents from checking the remote lists of overlays for complete overlay definitions]'
- '(--quiet -q)'{-q,--quiet}'[Makes layman completely quiet]'
- '(--verbose -v)'{-v,--verbose}'[Verbose output]'
- '(--quietness -Q)'{-Q,--quietness}'[Makes layman less verbose]:level:({0..4})'
- '(--nocolor -N)'{-N,--nocolor}'[Remove color codes from the output]'
+ '(--config -c)'{-c,--config}'[Select an alternative configuration file]:configuration file:_files'
+ '(--overlays -o)'{-o,--overlays}'[Specifies the location of additional overlay lists]:overlay url:_urls'
+ '(--nofetch -n)'{-n,--nofetch}'[Prevents from automatically fetching the remote lists of overlays]'
+ '(--nocheck -k)'{-k,--nocheck}'[Prevents from checking the remote lists of overlays for complete overlay definitions]'
+ '(--quiet -q)'{-q,--quiet}'[Makes layman completely quiet]'
+ '(--verbose -v)'{-v,--verbose}'[Verbose output]'
+ '(--quietness -Q)'{-Q,--quietness}'[Makes layman less verbose]:level:({0..4})'
+ '(--nocolor -N)'{-N,--nocolor}'[Remove color codes from the output]'
)
+
add_actions=(
- -p --priority
- --add -a
+ -p --priority
+ --add -a
)
+
actions_args=(
- "($actions --add -a)"{--add,-a}'[Add the given overlay to your installed overlays]:overlay:_layman_remote_overlays'
- "($actions --priority -p)"{--priority,-p}'[It will modify the priority of the added overlay]:priority:({0..100})'
- "($actions $add_actions)"{--delete,-d}'[Delete the given overlay from your installed overlays]:overlay:_layman_local_overlays'
- "($actions $add_actions)"{--sync,-s}'[Update the specified overlay]:overlat:_layman_local_overlays'
- "($actions $add_actions)"{--info,-i}'[Display all available information about the specified overlay]:overlay:_layman_remote_overlays'
- "($actions $add_actions)"{--sync-all,-S}'[Update all overlays]'
- "($actions $add_actions)"{--list,-L}'[List the contents of the remote list]'
- "($actions $add_actions)"{--list-local,-l}'[List the locally installed overlays]'
- "($actions $add_actions)"{--fetch,-f}'[Fetches the remote list of overlays]'
+ "($actions --add -a)"{--add,-a}'[Add the given overlay to your installed overlays]:overlay:_layman_remote_overlays'
+ "($actions --priority -p)"{--priority,-p}'[It will modify the priority of the added overlay]:priority:({0..100})'
+ "($actions $add_actions)"{--delete,-d}'[Delete the given overlay from your installed overlays]:overlay:_layman_local_overlays'
+ "($actions $add_actions)"{--sync,-s}'[Update the specified overlay]:overlat:_layman_local_overlays'
+ "($actions $add_actions)"{--info,-i}'[Display all available information about the specified overlay]:overlay:_layman_remote_overlays'
+ "($actions $add_actions)"{--sync-all,-S}'[Update all overlays]'
+ "($actions $add_actions)"{--list,-L}'[List the contents of the remote list]'
+ "($actions $add_actions)"{--list-local,-l}'[List the locally installed overlays]'
+ "($actions $add_actions)"{--fetch,-f}'[Fetches the remote list of overlays]'
)
+
_arguments $global_opts[@] $actions_args[@]
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_openrc b/src/_openrc
index 84ecbc8..3a250f4 100644
--- a/src/_openrc
+++ b/src/_openrc
@@ -6,80 +6,82 @@ local gentoo_runlevels
gentoo_runlevels=(/etc/runlevels/*(:t))
case "$service" in
- rc-service)
- if (( CURRENT == 2 )); then
- _arguments -s \
- '(-e --exists)'{-e,--exists}"[tests if the service exists or not]" \
- '(-l --list)'{-l,--list}'[list all available services]' \
- '(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
- '(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
- '(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
- '(-q --quiet)'{-q,--quiet}'[Run quietly]'
- _values "service" /etc/init.d/*~*.sh(:t)
- else
- case $words[2] in
- -e|--exists|-r|--resolve)
- (( CURRENT > 3 )) && return 0
- _values "service" /etc/init.d/*~*.sh(:t)
- ;;
- -*)
- return 0
- ;;
- *)
- _values "action" stop start restart describe zap
- ;;
- esac
- fi
- ;;
- rc-update)
- local used_init
- used_init=(${=${(M)${(f)"$(/sbin/rc-update show 2>/dev/null)"}:#*|*[a-z]*}% |*})
+ rc-service)
+ if (( CURRENT == 2 )); then
+ _arguments -s \
+ '(-e --exists)'{-e,--exists}"[tests if the service exists or not]" \
+ '(-l --list)'{-l,--list}'[list all available services]' \
+ '(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
+ '(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
+ '(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
+ '(-q --quiet)'{-q,--quiet}'[Run quietly]'
+ _values "service" /etc/init.d/*~*.sh(:t)
+ else
+ case $words[2] in
+ -e|--exists|-r|--resolve)
+ (( CURRENT > 3 )) && return 0
+ _values "service" /etc/init.d/*~*.sh(:t)
+ ;;
+ -*)
+ return 0
+ ;;
+ *)
+ _values "action" stop start restart describe zap
+ ;;
+ esac
+ fi
+ ;;
+ rc-update)
+ local used_init
+ used_init=(${=${(M)${(f)"$(/sbin/rc-update show 2>/dev/null)"}:#*|*[a-z]*}% |*})
- if (( CURRENT == 2 )); then
- _values "rc-update actions" \
- 'add[Add script to a runlevel]' \
- 'del[Delete script from a runlevel]' \
- 'show[Show scripts lanched at a runlevel]' \
- '-a[Add script to a runlevel]' \
- '-d[Delete script from a runlevel]' \
- '-s[Show scripts lanched at a runlevel]'
- elif (( CURRENT == 3 )); then
- case "$words[2]" in
- add|-a)
- _values "service" /etc/init.d/*~*.sh(:t)
- ;;
- del|-d)
- _values "service" $used_init
- ;;
- show|-s)
- _values "runlevels" $gentoo_runlevels \
- '-v[Show all init scripts]' \
- '--verbose[Show all init scripts]'
- ;;
- esac
- elif (( CURRENT == 4 )); then
- _values "runlevels" $gentoo_runlevels
- fi
- ;;
- rc-status)
- _arguments -s \
- {'(--all)-a','(-a)--all'}'[Show services at all runlevels]' \
- {'(--crashed)-c','(-c)--crashed'}'[Show crashed services]' \
- {'(--list)-l','(-l)--list'}'[Show list of runlevels]' \
- {'(--runlevel)-r','(-r)--runlevel'}'[Show the name of the current runlevel]' \
- {'(--servicelist)-s','(-s)--servicelist'}'[Show all services]' \
- {'(--unused)-u','(-u)--unused'}'[Show services not assigned to any run level]' \
- {'(--help)-h','(-h)--help'}'[Print this help output]' \
- {'(--nocolor)-C','(-C)--nocolor'}'[Disable color output]' \
- {'(--version)-V','(-V)--version'}'[Display software version]' \
- {'(--verbose)-v','(-v)--verbose'}'[Run verbosely]' \
- {'(--quiet)-q','(-q)--quiet'}'[Run quietly (Does not affect errors)]'
+ if (( CURRENT == 2 )); then
+ _values "rc-update actions" \
+ 'add[Add script to a runlevel]' \
+ 'del[Delete script from a runlevel]' \
+ 'show[Show scripts lanched at a runlevel]' \
+ '-a[Add script to a runlevel]' \
+ '-d[Delete script from a runlevel]' \
+ '-s[Show scripts lanched at a runlevel]'
+ elif (( CURRENT == 3 )); then
+ case "$words[2]" in
+ add|-a)
+ _values "service" /etc/init.d/*~*.sh(:t)
+ ;;
+ del|-d)
+ _values "service" $used_init
+ ;;
+ show|-s)
+ _values "runlevels" $gentoo_runlevels \
+ '-v[Show all init scripts]' \
+ '--verbose[Show all init scripts]'
+ ;;
+ esac
+ elif (( CURRENT == 4 )); then
+ _values "runlevels" $gentoo_runlevels
+ fi
+ ;;
+ rc-status)
+ _arguments -s \
+ {'(--all)-a','(-a)--all'}'[Show services at all runlevels]' \
+ {'(--crashed)-c','(-c)--crashed'}'[Show crashed services]' \
+ {'(--list)-l','(-l)--list'}'[Show list of runlevels]' \
+ {'(--runlevel)-r','(-r)--runlevel'}'[Show the name of the current runlevel]' \
+ {'(--servicelist)-s','(-s)--servicelist'}'[Show all services]' \
+ {'(--unused)-u','(-u)--unused'}'[Show services not assigned to any run level]' \
+ {'(--help)-h','(-h)--help'}'[Print this help output]' \
+ {'(--nocolor)-C','(-C)--nocolor'}'[Disable color output]' \
+ {'(--version)-V','(-V)--version'}'[Display software version]' \
+ {'(--verbose)-v','(-v)--verbose'}'[Run verbosely]' \
+ {'(--quiet)-q','(-q)--quiet'}'[Run quietly (Does not affect errors)]'
- _values 'runlevels' $gentoo_runlevels
- ;;
- rc)
- if (( CURRENT == 2 )); then
- _values "runlevels" $gentoo_runlevels
- fi
- ;;
+ _values 'runlevels' $gentoo_runlevels
+ ;;
+ rc)
+ if (( CURRENT == 2 )); then
+ _values "runlevels" $gentoo_runlevels
+ fi
+ ;;
esac
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_portage b/src/_portage
index aef3487..e9639d8 100644
--- a/src/_portage
+++ b/src/_portage
@@ -12,49 +12,46 @@
# Still TODO:
# xpak
-
# Stuff for ebuild
_ebuild () {
- if (( CURRENT == 2 ));then
- _files -g \*.ebuild
- elif (( CURRENT > 2 ));then
- _values "ebuild command" \
- 'clean[Cleans the temporary build directory]' \
- 'help[Show help]' \
- 'setup[Run all package specific setup actions and exotic system checks.]' \
- 'fetch[Fetch all necessary files]' \
- 'digest[Creates a digest file for the package]' \
- 'unpack[Extracts the sources to a subdirectory in the build directory]' \
- 'compile[Compiles the extracted sources by running the src_compile()]' \
- 'preinst[Run specific actions that need to be done before installation]' \
- 'install[Installs the package to the temporary install directory]' \
- 'postinst[Run specific actions that need to be done after installation]' \
- 'qmerge[Installs the package de the filesystem]' \
- 'merge[perform the following actions: fetch, unpack, compile, install and qmerge.]' \
- 'unmerge[Remove the installed files of the packages]' \
- 'prerm[Run specific actions that need to be executed before unmerge]' \
- 'postrm[Run specific actions that need to be executed after unmerge]' \
- 'config[Run specific actions needed to be executed after the emerge process has completed.]' \
- 'package[This command is a lot like the merge command, but create a .tbz2 package]' \
- 'manifest[Updates the manifest file for the package.]' \
- 'rpm[Builds a RedHat RPM package]'
- fi
+ if (( CURRENT == 2 )); then
+ _files -g \*.ebuild
+ elif (( CURRENT > 2 )); then
+ _values "ebuild command" \
+ 'clean[Cleans the temporary build directory]' \
+ 'help[Show help]' \
+ 'setup[Run all package specific setup actions and exotic system checks.]' \
+ 'fetch[Fetch all necessary files]' \
+ 'digest[Creates a digest file for the package]' \
+ 'unpack[Extracts the sources to a subdirectory in the build directory]' \
+ 'compile[Compiles the extracted sources by running the src_compile()]' \
+ 'preinst[Run specific actions that need to be done before installation]' \
+ 'install[Installs the package to the temporary install directory]' \
+ 'postinst[Run specific actions that need to be done after installation]' \
+ 'qmerge[Installs the package de the filesystem]' \
+ 'merge[perform the following actions: fetch, unpack, compile, install and qmerge.]' \
+ 'unmerge[Remove the installed files of the packages]' \
+ 'prerm[Run specific actions that need to be executed before unmerge]' \
+ 'postrm[Run specific actions that need to be executed after unmerge]' \
+ 'config[Run specific actions needed to be executed after the emerge process has completed.]' \
+ 'package[This command is a lot like the merge command, but create a .tbz2 package]' \
+ 'manifest[Updates the manifest file for the package.]' \
+ 'rpm[Builds a RedHat RPM package]'
+ fi
}
-
# Stuff for quickpkg
_quickpkg () {
- if compset -P '(\\|)(>=|<=|<|>|=)'; then
- _arguments -s \
- '*:installed package:_gentoo_packages installed_versions'
- elif compset -P '(\\|)[/]'; then
- _path_files -W / -/
- else
- _arguments \
- '*:installed package:_gentoo_packages installed'
- fi
+ if compset -P '(\\|)(>=|<=|<|>|=)'; then
+ _arguments -s \
+ '*:installed package:_gentoo_packages installed_versions'
+ elif compset -P '(\\|)[/]'; then
+ _path_files -W / -/
+ else
+ _arguments '*:installed package:_gentoo_packages installed'
+ fi
}
# Stuff for emerge
@@ -63,18 +60,18 @@ _emerge () {
local nopkg_opts all noask_opts bopts install_args common_args profiles
noask_opts=(-p -a --pretend --ask --regen --info --search -s --searchdesc \
- -S --version -V --help -h --metadata --check-news)
+ -S --version -V --help -h --metadata --check-news)
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 --list-sets --deselect --check-news)
+ --metadata -P --prune --regen -s --search -S --searchdesc --sync -C \
+ --unmerge -V --version -i --inject --list-sets --deselect --check-news)
bopts=($nopkg_opts -b --buildpkg -B --buildpkgonly -G --getbinpkgonly -g \
- --getbinpkg -k --usepkg -K --usepkgonly --fetch-all-uri -f -F --fetchonly)
+ --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 --config)
+ --noconfmem --nodeps -O --noreplace -n --oneshot -1 -o --onlydeps --tree -t \
+ -u --update -U --upgradeonly --config)
common_args=(
"($noask_opts --sync)"{-p,--pretend}"[Simply display what would be done]"
@@ -86,64 +83,64 @@ _emerge () {
'(: -)'{-h,--help}'[Displays help]'
"(: -)--config[Run package specific actions needed to be executed after the emerge process has completed]:installed atom:_gentoo_packages installed"
"(: -)--list-sets[Displays a list of available package sets]"
- "--color=[Color output]:yes/no:((y\:'yes' n\:'no'))"
- "--accept-properties=[Temporarily override the ACCEPT_PROPERTIES variable]"
- "--accept-restrict=[Temporarily override the ACCEPT_RESTRICT variable]"
- "($noask_opts)"{-A,--alert}"[Add a terminal bell to all interactive prompts]"
- "--ignore-default-opts[Ignore EMERGE_DEFAULT_OPTS]"
- "--moo[Have you mooed today?]"
- "(--jobs)--jobs[Number of packages to build simultaneously]:jobs:({1.."${#${$(</proc/cpuinfo)/^processor}}"})"
+ "--color=[Color output]:yes/no:((y\:'yes' n\:'no'))"
+ "--accept-properties=[Temporarily override the ACCEPT_PROPERTIES variable]"
+ "--accept-restrict=[Temporarily override the ACCEPT_RESTRICT variable]"
+ "($noask_opts)"{-A,--alert}"[Add a terminal bell to all interactive prompts]"
+ "--ignore-default-opts[Ignore EMERGE_DEFAULT_OPTS]"
+ "--moo[Have you mooed today?]"
+ "(--jobs)--jobs[Number of packages to build simultaneously]:jobs:({1.."${#${$(</proc/cpuinfo)/^processor}}"})"
)
install_args=(
- "--deselect[Remove atom from world file]"
- "--alphabetical[Sort use/other flags output alphabetically despite of status]"
- "--ask-enter-invalid[When with --ask, interpret a single 'Enter' key press as invalid input]"
- "--autounmask[Automatically unmask packages and generate package.use]"
- "--autounmask-unrestricted-atoms[Use >= for autounmask if possible]"
- "--autounmask-keep-masks[Don't unmask hardmasks and unkeyworded (live)]"
- "--autounmask-write[Automatically write autounmask changes (respect CONFIG_PROTECT)]"
- "--backtrack=[Number of times to backtrack if dependency calculation fails]:number:(0 10 30)"
- "--binpkg-respect-use[Ignore binary packages if their uses don't match current config]"
- "--complete-graph[Consider the deep dependencies of all packages from the world set]"
- "--complete-graph-if-new-use[--complete-graph if USE or IUSE will change for an installed package]"
- "--complete-graph-if-new-ver[--complete-graph if an installed package version will change]"
- "--config-root=[Set PORTAGE_CONFIGROOT variable]:root path:_files -/"
- "--depclean-lib-check[Check library link-level dependencies]"
- "--digest[Prevent corruption from being noticed]"
- "--dynamic-deps[Substitute the dependencies of installed packages with the dependencies of corresponding unbuilt ebuilds]"
- "--fail-clean[Clean up temporary files after a build failure]"
- "--ignore-built-slot-operator-deps[Ignore the slot/sub-slot dependencies for built pkg]"
- "--keep-going[Continue as much as possible after an error]"
- "--load-average[No new builds should be started if there are other builds running and the load average is at least VALUE]"
- "--misspell-suggestions[Enable or disable misspell suggestions]"
- "--newrepo[Recompile a package if it is now being pulled from a different repository]"
- "--usepkg-exclude[Ignore matching binary packages]:installed atom:_gentoo_packages installed"
- "--rebuild-exclude[Do not rebuild matching packages on --rebuild]:installed atom:_gentoo_packages installed"
- "--rebuild-ignore[Do not rebuild packages that depend on matching packages on --rebuild]:installed atom:_gentoo_packages installed"
- "--package-moves[Perform package moves when necessary]"
- "--pkg-format[Binary package format]:archive type:(tar rpm)"
- "--prefix=[Set EPREFIX env variable]:prefix path:_files -/"
- "--quiet-build[Redirect all build output to logs]"
- "--quiet-fail[Suppresses display of the build log on stdout]"
- "--quiet-repo-display[Suppress ::repository in output (and use numbers)]"
- "--quiet-unmerge-warn[Disable the warning message on --unmerge and friends]"
- "--rebuild-if-new-slot[Automatically rebuild or reinstall packages when dependencies can be satisfied by a newer slot]"
- "--rebuild-if-new-rev[Rebuild packages when build-time dependencies are built from source, if the dependency is not already installed with the same version and revision]"
- "--rebuild-if-new-ver[Rebuild packages when build-time dependencies are built from source, if the dependency is not already installed with the same version]"
- "--rebuild-if-unbuilt[Rebuild packages when build-time dependencies are built from source]"
- "--rebuilt-binaries[Replace installed packages with binary packages that have been rebuilt]"
- "--rebuilt-binaries-timestamp[Only binaries older than TIMESTAMP will be considered by the rebuilt-binaries logic]:TIMESTAMP"
- "--reinstall[Alias for --changed-use (currently)]:reinstall opts:(changes-use)"
- "--reinstall-atoms[Treat matching packages as if they are not installed]:installed atoms:_gentoo_packages installed"
- "--root=[Set ROOT env variable]:prefix path:_files -/"
- "(: $nopkg_opts)"{-w,--select}"[Add specified packages to the world set (inverse of --oneshot)]"
- "--selective=[Use --selective=n if you want to forcefully disable --selective, regardless of options like --changed-use, --newuse, --noreplace, or --update]:yes/no:((y\:'yes' n\:'no'))"
- "--unordered-display[Produce more readable package tree with --tree]"
- "--use-ebuild-visibility[Use unbuilt ebuild metadata for visibility checks on built packages]"
- "--useoldpkg-atoms[Prefer matching binary packages over newer unbuilt packages]:available atom:_gentoo_packages available"
+ "--deselect[Remove atom from world file]"
+ "--alphabetical[Sort use/other flags output alphabetically despite of status]"
+ "--ask-enter-invalid[When with --ask, interpret a single 'Enter' key press as invalid input]"
+ "--autounmask[Automatically unmask packages and generate package.use]"
+ "--autounmask-unrestricted-atoms[Use >= for autounmask if possible]"
+ "--autounmask-keep-masks[Don't unmask hardmasks and unkeyworded (live)]"
+ "--autounmask-write[Automatically write autounmask changes (respect CONFIG_PROTECT)]"
+ "--backtrack=[Number of times to backtrack if dependency calculation fails]:number:(0 10 30)"
+ "--binpkg-respect-use[Ignore binary packages if their uses don't match current config]"
+ "--complete-graph[Consider the deep dependencies of all packages from the world set]"
+ "--complete-graph-if-new-use[--complete-graph if USE or IUSE will change for an installed package]"
+ "--complete-graph-if-new-ver[--complete-graph if an installed package version will change]"
+ "--config-root=[Set PORTAGE_CONFIGROOT variable]:root path:_files -/"
+ "--depclean-lib-check[Check library link-level dependencies]"
+ "--digest[Prevent corruption from being noticed]"
+ "--dynamic-deps[Substitute the dependencies of installed packages with the dependencies of corresponding unbuilt ebuilds]"
+ "--fail-clean[Clean up temporary files after a build failure]"
+ "--ignore-built-slot-operator-deps[Ignore the slot/sub-slot dependencies for built pkg]"
+ "--keep-going[Continue as much as possible after an error]"
+ "--load-average[No new builds should be started if there are other builds running and the load average is at least VALUE]"
+ "--misspell-suggestions[Enable or disable misspell suggestions]"
+ "--newrepo[Recompile a package if it is now being pulled from a different repository]"
+ "--usepkg-exclude[Ignore matching binary packages]:installed atom:_gentoo_packages installed"
+ "--rebuild-exclude[Do not rebuild matching packages on --rebuild]:installed atom:_gentoo_packages installed"
+ "--rebuild-ignore[Do not rebuild packages that depend on matching packages on --rebuild]:installed atom:_gentoo_packages installed"
+ "--package-moves[Perform package moves when necessary]"
+ "--pkg-format[Binary package format]:archive type:(tar rpm)"
+ "--prefix=[Set EPREFIX env variable]:prefix path:_files -/"
+ "--quiet-build[Redirect all build output to logs]"
+ "--quiet-fail[Suppresses display of the build log on stdout]"
+ "--quiet-repo-display[Suppress ::repository in output (and use numbers)]"
+ "--quiet-unmerge-warn[Disable the warning message on --unmerge and friends]"
+ "--rebuild-if-new-slot[Automatically rebuild or reinstall packages when dependencies can be satisfied by a newer slot]"
+ "--rebuild-if-new-rev[Rebuild packages when build-time dependencies are built from source, if the dependency is not already installed with the same version and revision]"
+ "--rebuild-if-new-ver[Rebuild packages when build-time dependencies are built from source, if the dependency is not already installed with the same version]"
+ "--rebuild-if-unbuilt[Rebuild packages when build-time dependencies are built from source]"
+ "--rebuilt-binaries[Replace installed packages with binary packages that have been rebuilt]"
+ "--rebuilt-binaries-timestamp[Only binaries older than TIMESTAMP will be considered by the rebuilt-binaries logic]:TIMESTAMP"
+ "--reinstall[Alias for --changed-use (currently)]:reinstall opts:(changes-use)"
+ "--reinstall-atoms[Treat matching packages as if they are not installed]:installed atoms:_gentoo_packages installed"
+ "--root=[Set ROOT env variable]:prefix path:_files -/"
+ "(: $nopkg_opts)"{-w,--select}"[Add specified packages to the world set (inverse of --oneshot)]"
+ "--selective=[Use --selective=n if you want to forcefully disable --selective, regardless of options like --changed-use, --newuse, --noreplace, or --update]:yes/no:((y\:'yes' n\:'no'))"
+ "--unordered-display[Produce more readable package tree with --tree]"
+ "--use-ebuild-visibility[Use unbuilt ebuild metadata for visibility checks on built packages]"
+ "--useoldpkg-atoms[Prefer matching binary packages over newer unbuilt packages]:available atom:_gentoo_packages available"
"($bopts)"{-b,--buildpkg}"[Tells emerge to build binary packages]"
"($bopts)--buildpkg-exclude[Space separated list of package atoms for which no binary packages should be built]"
- "($bopts)--exclude[Space separated list of package names or slot atoms which should not be installed]"
+ "($bopts)--exclude[Space separated list of package names or slot atoms which should not be installed]"
"($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]"
@@ -188,178 +185,171 @@ _emerge () {
'system[All packages in the system profile]'
)
-
# Dispatch
- if (( $words[(I)(--(unmerge|(dep|)clean|prune|deselect)|-[[: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" \
- "::installed sets:_gentoo_packages installed_sets" \
- && return 0
- fi
+ if (( $words[(I)(--(unmerge|(dep|)clean|prune|deselect)|-[[: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" \
+ "::installed sets:_gentoo_packages installed_sets" \
+ && return 0
+ fi
- elif (( $words[(I)(world|system)] )) ; then
+ elif (( $words[(I)(world|system)] )); then
_arguments -s \
- "$common_args[@]" "$install_args[@]" \
- "($nopkg_opts[1,-2] --inject -i --oneshot -1):" && return 0
+ "$common_args[@]" "$install_args[@]" \
+ "($nopkg_opts[1,-2] --inject -i --oneshot -1):" && return 0
- elif (( $words[(I)(--usepkgonly|-[[:alnum:]]#K[[:alnum:]]#)] )) ; then
+ elif (( $words[(I)(--usepkgonly|-[[:alnum:]]#K[[:alnum:]]#)] )); then
_arguments -s \
- "$common_args[@]" "$install_args[@]" \
- '*:binary package:_gentoo_packages binary' && return 0
+ "$common_args[@]" "$install_args[@]" \
+ '*:binary package:_gentoo_packages binary' && 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" \
- "($nopkg_opts)::available sets:_gentoo_packages available_sets" \
- && return 0
- fi
+ 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" \
+ "($nopkg_opts)::available sets:_gentoo_packages available_sets" \
+ && return 0
+ fi
fi
}
-
_emaint () {
- _arguments -s \
- "(: -)"{-h,--help}'[show help message and exit]' \
- "(: -)"--version"[show program's version number and exit]" \
- '(-c --check -f --fix)'{-c,--check}"[Check for any problems that may exist]:emaint:((all\:'check all' world\:'check only world file'))" \
- '(-c --check -f --fix)'{-f,--fix}"[Fix any problems that may exist]:emaint:((all\:'check all' world\:'check only world file'))"
+ _arguments -s \
+ "(: -)"{-h,--help}'[show help message and exit]' \
+ "(: -)"--version"[show program's version number and exit]" \
+ '(-c --check -f --fix)'{-c,--check}"[Check for any problems that may exist]:emaint:((all\:'check all' world\:'check only world file'))" \
+ '(-c --check -f --fix)'{-f,--fix}"[Fix any problems that may exist]:emaint:((all\:'check all' world\:'check only world file'))"
}
-
_env-update () {
- _arguments -s '(: -)--no-ldconfig[Do not run ldconfig]'
+ _arguments -s '(: -)--no-ldconfig[Do not run ldconfig]'
}
-
_portageq () {
- local action
-
- action="$words[2]"
-
- if (( CURRENT == 2 )); then
- _values 'command' \
- '--help[Show help]' \
- 'config_protect_mask[Returns the CONFIG_PROTECT_MASK paths]' \
- 'config_protect[Returns the CONFIG_PROTECT paths]' \
- 'portdir[Returns PORTDIR paths]' \
- 'contents[List the files that are installed for a given package]' \
- 'vdb_path[Returns the path used for the var(installed) package database]' \
- 'gentoo_mirrors[Returns the mirrors set to use in the portage configuration]' \
- 'exithandler[MISSING DOCUMENTATION!]' \
- 'all_best_visible[Returns all best_visible packages (without .ebuild)]' \
- 'match[Returns a \n separated list of category/package-version]' \
- 'metadata[Returns metadata values for the specified package]' \
- 'best_visible[Returns category/package-version (without .ebuild)]' \
- 'mass_best_visible[Returns category/package-version (without .ebuild)]' \
- "has_version[Return code 0 if it's available, 1 otherwise]" \
- 'envvar[Returns a specific environment variable as exists prior to ebuild.sh]' \
- 'pkgdir[Returns the PKGDIR path]' \
- 'best_version[Returns category/package-version (without .ebuild)]' \
- 'mass_best_version[Returns category/package-version (without .ebuild)]' \
- 'portdir_overlay[Returns the PORTDIR_OVERLAY path]' \
- 'distdir[Returns the DISTDIR path]' \
- 'owners[print the packages that own the files and which files belong to each package]'
- elif (( CURRENT == 3 )); then
- if [[ "$action" =~ (contents|(all_|mass_|)best_visible|match|metadata|(has|best)_version|owners|mass_best_version) ]]; then
- _arguments -s '*:root:_files -g /'
- fi
- elif (( CURRENT > 3 )); then
- if [[ "$action" =~ ((mass_|)best_(visible|version)|has_version) ]]; then
- _arguments -s '*:package:_gentoo_packages available'
- elif [[ "$action" == owners ]]; then
- _arguments -s '*:root:_files'
- fi
+ local action
+
+ action="$words[2]"
+
+ if (( CURRENT == 2 )); then
+ _values 'command' \
+ '--help[Show help]' \
+ 'config_protect_mask[Returns the CONFIG_PROTECT_MASK paths]' \
+ 'config_protect[Returns the CONFIG_PROTECT paths]' \
+ 'portdir[Returns PORTDIR paths]' \
+ 'contents[List the files that are installed for a given package]' \
+ 'vdb_path[Returns the path used for the var(installed) package database]' \
+ 'gentoo_mirrors[Returns the mirrors set to use in the portage configuration]' \
+ 'exithandler[MISSING DOCUMENTATION!]' \
+ 'all_best_visible[Returns all best_visible packages (without .ebuild)]' \
+ 'match[Returns a \n separated list of category/package-version]' \
+ 'metadata[Returns metadata values for the specified package]' \
+ 'best_visible[Returns category/package-version (without .ebuild)]' \
+ 'mass_best_visible[Returns category/package-version (without .ebuild)]' \
+ "has_version[Return code 0 if it's available, 1 otherwise]" \
+ 'envvar[Returns a specific environment variable as exists prior to ebuild.sh]' \
+ 'pkgdir[Returns the PKGDIR path]' \
+ 'best_version[Returns category/package-version (without .ebuild)]' \
+ 'mass_best_version[Returns category/package-version (without .ebuild)]' \
+ 'portdir_overlay[Returns the PORTDIR_OVERLAY path]' \
+ 'distdir[Returns the DISTDIR path]' \
+ 'owners[print the packages that own the files and which files belong to each package]'
+ elif (( CURRENT == 3 )); then
+ if [[ "$action" =~ (contents|(all_|mass_|)best_visible|match|metadata|(has|best)_version|owners|mass_best_version) ]]; then
+ _arguments -s '*:root:_files -g /'
+ fi
+ elif (( CURRENT > 3 )); then
+ if [[ "$action" =~ ((mass_|)best_(visible|version)|has_version) ]]; then
+ _arguments -s '*:package:_gentoo_packages available'
+ elif [[ "$action" == owners ]]; then
+ _arguments -s '*:root:_files'
fi
+ fi
}
-
_repoman () {
- local previous
-
- previous="$words[CURRENT-1]"
-
- _arguments -s \
- '(--force)'--force'[Force commit to proceed, regardless of QA issues]' \
- '(-q --quiet -v --verbose)'{-q,--quiet}'[Be less verbose about extraneous info]' \
- '(-p --pretend -m --commitmsg -M --commitmsgfile)'{-p,--pretend}'[Don’t commit or fix anything; just show what would be done]' \
- '(-i --include-masked)'{-i,--include-masked}'[Include masked packages in scans at category or tree level]' \
- '(-x --xmlparse)'{-x,--xmlparse}'[Forces the metadata.xml parse check to be carried out]' \
- '(-q --quiet -v --verbose)'{-v,--verbose}'[Displays every package name while checking]' \
- '(-I --ignore-arches)'{-I,--ignore-arches}'[Ignore arch-specific failures (where arch != host)]' \
- '(-m --commitmsg -M --commitmsgfile)'{-m,--commitmsg}'[Adds a commit message via the command line]:message:' \
- '(-m --commitmsg -M --commitmsgfile)'{-M,--commitmsgfile}'[Adds a commit message from the specified file]:commit_file:_files' \
- '(: -)'{-V,--version}'[Show version info]' \
- '(: -)'{-h,--help}'[Show this screen]'
-
- # if we don't have an option that cancel action, or if we don't already have an action.
- if ! [[ "$previous" =~ (-h|-V|-m|-M|--version|--help|--commitmsg|--commitmsgfile) ]] &&
- ! (( $words[(I)(full|last|help|scan|fix|lfull|manifest|commit)] )); then
- _values 'action' \
- 'full[Scan directory tree for QA issues (full listing)]' \
- 'last[Remember report from last run]' \
- 'help[Show this screen]' \
- 'scan[Scan directory tree for QA issues (short listing)]' \
- 'fix[Fix simple QA issues (stray digests, missing digests)]' \
- 'lfull[Remember report from last run (full listing)]' \
- 'manifest[Generate a Manifest (fetches files if necessary)]' \
- 'commit[Scan directory tree for QA issues; if OK, commit via cvs]'
- fi
+ local previous
+
+ previous="$words[CURRENT-1]"
+
+ _arguments -s \
+ '(--force)'--force'[Force commit to proceed, regardless of QA issues]' \
+ '(-q --quiet -v --verbose)'{-q,--quiet}'[Be less verbose about extraneous info]' \
+ '(-p --pretend -m --commitmsg -M --commitmsgfile)'{-p,--pretend}'[Don’t commit or fix anything; just show what would be done]' \
+ '(-i --include-masked)'{-i,--include-masked}'[Include masked packages in scans at category or tree level]' \
+ '(-x --xmlparse)'{-x,--xmlparse}'[Forces the metadata.xml parse check to be carried out]' \
+ '(-q --quiet -v --verbose)'{-v,--verbose}'[Displays every package name while checking]' \
+ '(-I --ignore-arches)'{-I,--ignore-arches}'[Ignore arch-specific failures (where arch != host)]' \
+ '(-m --commitmsg -M --commitmsgfile)'{-m,--commitmsg}'[Adds a commit message via the command line]:message:' \
+ '(-m --commitmsg -M --commitmsgfile)'{-M,--commitmsgfile}'[Adds a commit message from the specified file]:commit_file:_files' \
+ '(: -)'{-V,--version}'[Show version info]' \
+ '(: -)'{-h,--help}'[Show this screen]'
+
+ # if we don't have an option that cancel action, or if we don't already have an action.
+ if ! [[ "$previous" =~ (-h|-V|-m|-M|--version|--help|--commitmsg|--commitmsgfile) ]] &&
+ ! (( $words[(I)(full|last|help|scan|fix|lfull|manifest|commit)] )); then
+ _values 'action' \
+ 'full[Scan directory tree for QA issues (full listing)]' \
+ 'last[Remember report from last run]' \
+ 'help[Show this screen]' \
+ 'scan[Scan directory tree for QA issues (short listing)]' \
+ 'fix[Fix simple QA issues (stray digests, missing digests)]' \
+ 'lfull[Remember report from last run (full listing)]' \
+ 'manifest[Generate a Manifest (fetches files if necessary)]' \
+ 'commit[Scan directory tree for QA issues; if OK, commit via cvs]'
+ fi
}
-
_tbz2tool () {
- if (( CURRENT == 2 )); then
- _values 'action' 'join' 'split'
- elif (( CURRENT > 2 )) && (( CURRENT < 6 )); then
- _arguments -s '*:file:_files'
- fi
+ if (( CURRENT == 2 )); then
+ _values 'action' 'join' 'split'
+ elif (( CURRENT > 2 )) && (( CURRENT < 6 )); then
+ _arguments -s '*:file:_files'
+ fi
}
-
zparseopts -D -E -A Args -- -emerge
-if (( ${+Args[--emerge]} ));then
- _emerge "$@" && return 0
+if (( ${+Args[--emerge]} )); then
+ _emerge "$@" && return 0
fi
case "$service" in
- emerge)
- _emerge "$@" && return 0
- ;;
- ebuild)
- _ebuild "$@" && return 0
- ;;
- quickpkg)
- _quickpkg "$@" && return 0
- ;;
- emaint)
- _emaint "$@" && return 0
- ;;
- env-update)
- _env-update "$@" && return 0
- ;;
- portageq)
- _portageq "$@" && return 0
- ;;
- repoman)
- _repoman "$@" && return 0
- ;;
- tbz2tool)
- _tbz2tool "$@" && return 0
- ;;
+ emerge)
+ _emerge "$@" && return 0
+ ;;
+ ebuild)
+ _ebuild "$@" && return 0
+ ;;
+ quickpkg)
+ _quickpkg "$@" && return 0
+ ;;
+ emaint)
+ _emaint "$@" && return 0
+ ;;
+ env-update)
+ _env-update "$@" && return 0
+ ;;
+ portageq)
+ _portageq "$@" && return 0
+ ;;
+ repoman)
+ _repoman "$@" && return 0
+ ;;
+ tbz2tool)
+ _tbz2tool "$@" && return 0
+ ;;
esac
+# vim: set et sw=2 sts=2 ts=2 ft=zsh:
diff --git a/src/_portage_utils b/src/_portage_utils
index 4638258..95811c8 100644
--- a/src/_portage_utils
+++ b/src/_portage_utils
@@ -2,266 +2,266 @@
# portage-utils-0.53
-
_portdir() {
- local mainreponame mainrepopath overlayname overlaypath
-
- if [[ -e /usr/share/portage/config/repos.conf ]]; then
- if [[ ${1} == "-o" ]]; then
- for overlayname in $(_parsereposconf -l); do
- overlaypath+=($(_parsereposconf ${overlayname} location))
- done
+ local mainreponame mainrepopath overlayname overlaypath
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
+ if [[ -e /usr/share/portage/config/repos.conf ]]; then
+ if [[ ${1} == "-o" ]]; then
+ for overlayname in $(_parsereposconf -l); do
+ overlaypath+=($(_parsereposconf ${overlayname} location))
+ done
- overlaypath+=(${(@)PORTDIR_OVERLAY})
+ source /etc/make.conf 2>/dev/null
+ source /etc/portage/make.conf 2>/dev/null
- echo "${(@u)overlaypath}"
- else
- mainreponame=$(_parsereposconf DEFAULT main-repo)
- mainrepopath=$(_parsereposconf ${mainreponame} location)
+ overlaypath+=(${(@)PORTDIR_OVERLAY})
- echo "${mainrepopath}"
- fi
+ echo "${(@u)overlaypath}"
else
- source /usr/share/portage/config/make.globals 2>/dev/null
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
+ mainreponame=$(_parsereposconf DEFAULT main-repo)
+ mainrepopath=$(_parsereposconf ${mainreponame} location)
- if [[ ${1} == "-o" ]]; then
- echo "${(@u)PORTDIR_OVERLAY}"
- else
- echo "${PORTDIR}"
- fi
+ echo "${mainrepopath}"
+ fi
+ else
+ source /usr/share/portage/config/make.globals 2>/dev/null
+ source /etc/make.conf 2>/dev/null
+ source /etc/portage/make.conf 2>/dev/null
+
+ if [[ ${1} == "-o" ]]; then
+ echo "${(@u)PORTDIR_OVERLAY}"
+ else
+ echo "${PORTDIR}"
fi
+ fi
}
_parsereposconf() {
- local v f insection section arr
+ local v f insection section arr
- for f in /usr/share/portage/config/repos.conf \
- /etc/portage/repos.conf \
- /etc/portage/repos.conf/*.conf; do
+ for f in /usr/share/portage/config/repos.conf \
+ /etc/portage/repos.conf \
+ /etc/portage/repos.conf/*.conf; do
- [[ -f ${f} ]] || continue
- insection=0
- declare -A arr
- IFS='= '
+ [[ -f ${f} ]] || continue
+ insection=0
+ declare -A arr
+ IFS='= '
- while read -r name value; do
- [[ -z ${name} || ${name} == '#'* ]] && continue
+ while read -r name value; do
+ [[ -z ${name} || ${name} == '#'* ]] && continue
- if [[ (${name} == '['*']') && (-z ${value}) ]]; then
- value=${name//(\]|\[)}
- name="section"
- fi
- arr[${name}]=${value}
+ if [[ (${name} == '['*']') && (-z ${value}) ]]; then
+ value=${name//(\]|\[)}
+ name="section"
+ fi
+ arr[${name}]=${value}
- if [[ ${insection} == 1 && ${name} == "section" ]]; then
- break
- elif [[ ${name} == "section" ]]; then
- [[ ${value} == ${1} ]] && insection=1
- secname+=(${value})
- elif [[ ${insection} == 1 ]]; then
- if [[ ${name} == ${2} ]]; then
- v=${value}
- fi
- fi
- continue
- done < ${f}
- done
+ if [[ ${insection} == 1 && ${name} == "section" ]]; then
+ break
+ elif [[ ${name} == "section" ]]; then
+ [[ ${value} == ${1} ]] && insection=1
+ secname+=(${value})
+ elif [[ ${insection} == 1 ]]; then
+ if [[ ${name} == ${2} ]]; then
+ v=${value}
+ fi
+ fi
+ continue
+ done < ${f}
+ done
- if [[ ${1} == "-l" ]]; then
- echo "${(@)secname}"
- else
- echo "${v}"
- fi
+ if [[ ${1} == "-l" ]]; then
+ echo "${(@)secname}"
+ else
+ echo "${v}"
+ fi
}
-
local common_args PORTDIR
PORTDIR="$(_portdir)"
common_args=(
- '--root[Set the ROOT env var]:root directory:_files -/' \
- {'(--verbose)-v','(-v)--verbose'}'[Make a lot of noise]' \
- {'(--quiet)-q','(-q)--quiet'}'[Tighter output; suppress warnings]' \
- {'(--nocolor)-C','(-C)--nocolor'}'[Do not output color]' \
- {'(--help)-h','(-h)--help'}'[Print this help and exit]' \
- {'(--version)-V','(-V)--version'}'[Print version and exit]' \
+ '--root[Set the ROOT env var]:root directory:_files -/' \
+ {'(--verbose)-v','(-v)--verbose'}'[Make a lot of noise]' \
+ {'(--quiet)-q','(-q)--quiet'}'[Tighter output; suppress warnings]' \
+ {'(--nocolor)-C','(-C)--nocolor'}'[Do not output color]' \
+ {'(--help)-h','(-h)--help'}'[Print this help and exit]' \
+ {'(--version)-V','(-V)--version'}'[Print version and exit]' \
)
case $service in
- qatom)
- _arguments -s $common_args \
- {'(--compare)-c','(-c)--compare'}'[Compare two atoms]'
- ;;
- qcache)
- local arch
- local -a arches allarches
+ qatom)
+ _arguments -s $common_args \
+ {'(--compare)-c','(-c)--compare'}'[Compare two atoms]'
+ ;;
+ qcache)
+ local arch
+ local -a arches allarches
- show_archs(){
- arches=(${(f)"$(<$PORTDIR/profiles/arch.list)"})
- for arch in $arches; do
- [[ $arch =~ '^[^#]' ]] && allarches+=( $arch )
- done
- _describe -t available-arches "arch" allarches
- }
+ show_archs(){
+ arches=(${(f)"$(<$PORTDIR/profiles/arch.list)"})
+ for arch in $arches; do
+ [[ $arch =~ '^[^#]' ]] && allarches+=( $arch )
+ done
+ _describe -t available-arches "arch" allarches
+ }
- _arguments -s $common_args \
- {'(--matchpkg)-p','(-p)--matchpkg'}'[match pkgname]:package name:_gentoo_packages available_pkgnames_only' \
- {'(--matchcat)-c','(-c)--matchcat'}'[match catname]:category:_gentoo_packages category' \
- {'(--imlate)-i','(-i)--imlate'}'[list packages that can be marked stable on a given arch]' \
- {'(--dropped)-d','(-d)--dropped'}'[list packages that have dropped keywords on a version bump on a given arch]' \
- {'(--testing)-t','(-t)--testing'}'[list packages that have ~arch versions, but no stable versions on a given arch]' \
- {'(--stats)-s','(-s)--stats'}'[display statistics about the portage tree]' \
- {'(--all)-a','(-a)--all'}'[list packages that have at least one version keyworded for on a given arch]' \
- {'(--not)-n','(-n)--not'}"[list packages that aren't keyworded on a given arch]" \
- '*:arch:show_archs'
- ;;
- qcheck)
- _arguments -s $common_args \
- {'(--all)-a','(-a)--all'}'[List all packages]' \
- {'(--exact)-e','(-e)--exact'}'[Exact match (only CAT/PN or PN without PV)]' \
- {'(--skip)-s','(-s)--skip'}'[Ignore files matching regular expression]:regex' \
- {'(--update)-u','(-u)--update'}'[Update missing files, chksum and mtimes for packages]' \
- {'(--noafk)-A','(-A)--noafk'}'[Ignore missing files]' \
- {'(--badonly)-B','(-B)--badonly'}'[Only print pkgs containing bad files]' \
- {'(--nohash)-H','(-H)--nohash'}'[Ignore differing/unknown file chksums]' \
- {'(--nomtime)-T','(-T)--nomtime'}'[Ignore differing file mtimes]' \
- '--skip-protected[Ignore files in CONFIG_PROTECT-ed paths]' \
- {'(--prelink)-p','(-p)--prelink'}'[Undo prelink when calculating checksums]' \
- '*:packages:_gentoo_packages installed'
- ;;
- qdepends)
- _arguments -s $common_args \
- {'(--depend)-d','(-d)--depend'}'[Show DEPEND info (default)]' \
- {'(--rdepend)-r','(-r)--rdepend'}'[Show RDEPEND info]' \
- {'(--pdepend)-p','(-p)--pdepend'}'[Show PDEPEND info]' \
- {'(--key)-k','(-k)--key'}'[User defined vdb key]:vdb key' \
- {'(--query)-Q','(-Q)--query'}'[Query reverse deps]' \
- {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
- {'(--all)-a','(-a)--all'}'[Show all DEPEND info]' \
- {'(--format)-f','(-f)--format'}'[Pretty format specified depend strings]' \
- '*:packages:_gentoo_packages installed'
- ;;
- qfile)
- _arguments -s $common_args \
- {'(--slots)-S','(-S)--slots'}'[Display installed packages with slots]' \
- {'(--root-prefix)-R','(-R)--root-prefix'}'[Assume arguments are already prefixed by $ROOT]' \
- {'(--from)-f','(-f)--from'}'[Read arguments from file <arg> ("-" for stdin)]' \
- {'(--max-args)-m','(-m)--max-args'}'[Treat from file arguments by groups of <arg> (defaults to 5000)]:number' \
- {'(--basename)-b','(-b)--basename'}'[Match any component of the path]' \
- {'(--orphans)-o','(-o)--orphans'}'[List orphan files]' \
- {'(--exclude)-x','(-x)--exclude'}"[Don't look in package <arg> (used with --orphans)]:package:_gentoo_packages installed" \
- {'(--exact)-e','(-e)--exact'}'[Exact match (used with --exclude)]' \
- '*:filename:_files'
- ;;
- qgrep)
- _arguments -s $common_args \
- {'(--invert-match)-I','(-I)--invert-match'}'[Select non-matching lines]' \
- {'(--ignore-case)-i','(-i)--ignore-case'}'[Ignore case distinctions]' \
- {'(--with-filename)-H','(-H)--with-filename'}'[Print the filename for each match]' \
- {'(--with-name)-N','(-N)--with-name'}'[Print the package or eclass name for each match]' \
- {'(--count)-c','(-c)--count'}'[Only print a count of matching lines per FILE]' \
- {'(--list)-l','(-l)--list'}'[Only print FILE names containing matches]' \
- {'(--invert-list)-L','(-L)--invert-list'}'[Only print FILE names containing no match]' \
- {'(--regexp)-e','(-e)--regexp'}'[Use PATTERN as a regular expression]' \
- {'(--extended)-x','(-x)--extended'}'[Use PATTERN as an extended regular expression]' \
- {'(--installed)-J','(-J)--installed'}'[Search in installed ebuilds instead of the tree]' \
- {'(--eclass)-E','(-E)--eclass'}'[Search in eclasses instead of ebuilds]' \
- {'(--skip-comments)-s','(-s)--skip-comments'}'[Skip comments lines]' \
- {'(--skip)-S','(-S)--skip'}'[Skip lines matching <arg>]:pattern' \
- {'(--before)-B','(-B)--before'}'[Print <arg> lines of leading context]:number' \
- {'(--after)-A','(-A)--after'}'[Print <arg> lines of trailing context]:number' \
- '*:pattern::'
- ;;
- qlist)
- _arguments -s $common_args \
- {'(--installed)-I','(-I)--installed'}'[Just show installed packages]' \
- {'(--slots)-S','(-S)--slots'}'[Display installed packages with slots]' \
- {'(--repo)-R','(-R)--repo'}'[Display installed packages with repository]' \
- {'(--umap)-U','(-U)--umap'}'[Display installed packages with flags used]' \
- {'(--columns)-c','(-c)--columns'}'[Display column view]' \
- '--show-debug[Show /usr/lib/debug files]' \
- {'(--exact)-e','(-e)--exact'}'[Exact match (only CAT/PN or PN without PV)]' \
- {'(--all)-a','(-a)--all'}'[Show every installed package]' \
- {'(--dir)-d','(-d)--dir'}'[Only show directories]' \
- {'(--obj)-o','(-o)--obj'}'[Only show objects]' \
- {'(--sym)-s','(-s)--sym'}'[Only show symlinks]' \
- '*:packages:_gentoo_packages installed'
- ;;
- qlop)
- _arguments -s $common_args \
- {'(--gauge)-g','(-g)--gauge'}'[Gauge number of times a package has been merged]' \
- {'(--time)-t','(-t)--time'}'[Calculate merge time for a specific package]' \
- {'(--human)-H','(-H)--human'}'[Print seconds in human readable format (needs -t)]' \
- {'(--list)-l','(-l)--list'}'[Show merge history]' \
- {'(--unlist)-u','(-u)--unlist'}'[Show unmerge history]' \
- {'(--sync)-s','(-s)--sync'}'[Show sync history]' \
- {'(--current)-c','(-c)--current'}'[Show current emerging packages]' \
- {'(--logfile)-f','(-f)--logfile'}'[Read emerge logfile instead of /var/log/emerge.log]:log:_files' \
- '*:packages:_gentoo_packages available'
- ;;
- qsearch)
- _arguments -s $common_args \
- {'(--all)-a','(-a)--all'}'[List the descriptions of every package in the cache]' \
- {'(--cache)-c','(-c)--cache'}'[Use the portage cache]' \
- {'(--ebuilds)-e','(-e)--ebuilds'}'[Use the portage ebuild tree]' \
- {'(--search)-s','(-s)--search'}'[Regex search package basenames]' \
- {'(--desc)-S','(-S)--desc'}'[Regex search package descriptions]' \
- {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
- {'(--homepage)-H','(-H)--homepage'}'[Show homepage info]' \
- '*:pattern::'
- ;;
- qsize)
- _arguments -s $common_args \
- {'(--filesystem)-f','(-f)--filesystem'}'[Show size used on disk]' \
- {'(--all)-a','(-a)--all'}'[Size all installed packages]' \
- {'(--sum)-s','(-s)--sum'}'[Include a summary]' \
- {'(--sum-only)-S','(-S)--sum-only'}'[Show just the summary]' \
- {'(--megabytes)-m','(-m)--megabytes'}'[Display size in megabytes]' \
- {'(--kilobytes)-k','(-k)--kilobytes'}'[Display size in kilobytes]' \
- {'(--bytes)-b','(-b)--bytes'}'[Display size in bytes]' \
- {'(--ignore)-i','(-i)--ignore'}'[Ignore regexp string]:pattern' \
- '*:packages:_gentoo_packages installed'
- ;;
- quse)
- _arguments -s $common_args \
- {'(--exact)-e','(-e)--exact'}'[Show exact non regexp matching using strcmp]' \
- {'(--all)-a','(-a)--all'}'[Show annoying things in IUSE]' \
- {'(--keywords)-K','(-K)--keywords'}'[Use the KEYWORDS vs IUSE]' \
- {'(--license)-L','(-L)--license'}'[Use the LICENSE vs IUSE]' \
- {'(--describe)-D','(-D)--describe'}'[Describe the USE flag]' \
- {'(--format)-F','(-F)--format'}'[Use your own variable formats: -F NAME=]:format' \
- {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
- '*:use flag:_gentoo_packages useflag'
- ;;
- qtbz2)
- _arguments -s $common_args \
- {'(--dir)-d','(-d)--dir'}'[Change to specified directory]:directory:_files -/' \
- {'(--join)-j','(-j)--join'}'[Join tar.bz2 + xpak into a tbz2]:*:tar.bz2 file and xpak file:_files -g \*.\(tar.bz2\|xpak\)' \
- {'(--split)-s','(-s)--split'}'[Split a tbz2 into a tar.bz2 + xpak]:tbz2 file:_files -g \*.tbz2' \
- {'(--tarbz2)-t','(-t)--tarbz2'}'[Just split the tar.bz2]:tbz2 file:_files -g \*.tbz2' \
- {'(--xpak)-x','(-x)--xpak'}'[Just split the xpak]:tbz2 file:_files -g \*.tbz2' \
- {'(--stdout)-O','(-O)--stdout'}'[Write files to stdout]'
- ;;
- qpkg)
- _arguments -s $common_args \
- {'(--clean)-c','(-c)--clean'}'[clean pkgdir of unused binary files]' \
- {'(--eclean)-E','(-E)--eclean'}'[clean pkgdir of files not in the tree anymore (slow)]' \
- {'(--pretend)-p','(-p)--pretend'}'[pretend only]' \
- {'(--pkgdir)-P','(-P)--pkgdir'}'[alternate package directory]:alternate pkgdir:_files -/' \
- '*:Installed packages:_gentoo_packages installed_versions'
- ;;
- qxpak)
- _arguments -s $common_args \
- {'(--list)-l','(-l)--list'}'[List the contents of an archive]:xpak archive:_files -g \*.xpak' \
- {'(--extract)-x','(-x)--extract'}'[Extract the contents of an archive]:xpak archive:_files -g \*.xpak' \
- {'(--create)-c','(-c)--create'}'[Create an archive of a directory/files]:*:archive name and files to archive:_files' \
- {'(--dir)-d','(-d)--dir'}'[Change to specified directory]:directory:_files -/' \
- {'(--stdout)-O','(-O)--stdout'}'[Write files to stdout]'
- ;;
+ _arguments -s $common_args \
+ {'(--matchpkg)-p','(-p)--matchpkg'}'[match pkgname]:package name:_gentoo_packages available_pkgnames_only' \
+ {'(--matchcat)-c','(-c)--matchcat'}'[match catname]:category:_gentoo_packages category' \
+ {'(--imlate)-i','(-i)--imlate'}'[list packages that can be marked stable on a given arch]' \
+ {'(--dropped)-d','(-d)--dropped'}'[list packages that have dropped keywords on a version bump on a given arch]' \
+ {'(--testing)-t','(-t)--testing'}'[list packages that have ~arch versions, but no stable versions on a given arch]' \
+ {'(--stats)-s','(-s)--stats'}'[display statistics about the portage tree]' \
+ {'(--all)-a','(-a)--all'}'[list packages that have at least one version keyworded for on a given arch]' \
+ {'(--not)-n','(-n)--not'}"[list packages that aren't keyworded on a given arch]" \
+ '*:arch:show_archs'
+ ;;
+ qcheck)
+ _arguments -s $common_args \
+ {'(--all)-a','(-a)--all'}'[List all packages]' \
+ {'(--exact)-e','(-e)--exact'}'[Exact match (only CAT/PN or PN without PV)]' \
+ {'(--skip)-s','(-s)--skip'}'[Ignore files matching regular expression]:regex' \
+ {'(--update)-u','(-u)--update'}'[Update missing files, chksum and mtimes for packages]' \
+ {'(--noafk)-A','(-A)--noafk'}'[Ignore missing files]' \
+ {'(--badonly)-B','(-B)--badonly'}'[Only print pkgs containing bad files]' \
+ {'(--nohash)-H','(-H)--nohash'}'[Ignore differing/unknown file chksums]' \
+ {'(--nomtime)-T','(-T)--nomtime'}'[Ignore differing file mtimes]' \
+ '--skip-protected[Ignore files in CONFIG_PROTECT-ed paths]' \
+ {'(--prelink)-p','(-p)--prelink'}'[Undo prelink when calculating checksums]' \
+ '*:packages:_gentoo_packages installed'
+ ;;
+ qdepends)
+ _arguments -s $common_args \
+ {'(--depend)-d','(-d)--depend'}'[Show DEPEND info (default)]' \
+ {'(--rdepend)-r','(-r)--rdepend'}'[Show RDEPEND info]' \
+ {'(--pdepend)-p','(-p)--pdepend'}'[Show PDEPEND info]' \
+ {'(--key)-k','(-k)--key'}'[User defined vdb key]:vdb key' \
+ {'(--query)-Q','(-Q)--query'}'[Query reverse deps]' \
+ {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
+ {'(--all)-a','(-a)--all'}'[Show all DEPEND info]' \
+ {'(--format)-f','(-f)--format'}'[Pretty format specified depend strings]' \
+ '*:packages:_gentoo_packages installed'
+ ;;
+ qfile)
+ _arguments -s $common_args \
+ {'(--slots)-S','(-S)--slots'}'[Display installed packages with slots]' \
+ {'(--root-prefix)-R','(-R)--root-prefix'}'[Assume arguments are already prefixed by $ROOT]' \
+ {'(--from)-f','(-f)--from'}'[Read arguments from file <arg> ("-" for stdin)]' \
+ {'(--max-args)-m','(-m)--max-args'}'[Treat from file arguments by groups of <arg> (defaults to 5000)]:number' \
+ {'(--basename)-b','(-b)--basename'}'[Match any component of the path]' \
+ {'(--orphans)-o','(-o)--orphans'}'[List orphan files]' \
+ {'(--exclude)-x','(-x)--exclude'}"[Don't look in package <arg> (used with --orphans)]:package:_gentoo_packages installed" \
+ {'(--exact)-e','(-e)--exact'}'[Exact match (used with --exclude)]' \
+ '*:filename:_files'
+ ;;
+ qgrep)
+ _arguments -s $common_args \
+ {'(--invert-match)-I','(-I)--invert-match'}'[Select non-matching lines]' \
+ {'(--ignore-case)-i','(-i)--ignore-case'}'[Ignore case distinctions]' \
+ {'(--with-filename)-H','(-H)--with-filename'}'[Print the filename for each match]' \
+ {'(--with-name)-N','(-N)--with-name'}'[Print the package or eclass name for each match]' \
+ {'(--count)-c','(-c)--count'}'[Only print a count of matching lines per FILE]' \
+ {'(--list)-l','(-l)--list'}'[Only print FILE names containing matches]' \
+ {'(--invert-list)-L','(-L)--invert-list'}'[Only print FILE names containing no match]' \
+ {'(--regexp)-e','(-e)--regexp'}'[Use PATTERN as a regular expression]' \
+ {'(--extended)-x','(-x)--extended'}'[Use PATTERN as an extended regular expression]' \
+ {'(--installed)-J','(-J)--installed'}'[Search in installed ebuilds instead of the tree]' \
+ {'(--eclass)-E','(-E)--eclass'}'[Search in eclasses instead of ebuilds]' \
+ {'(--skip-comments)-s','(-s)--skip-comments'}'[Skip comments lines]' \
+ {'(--skip)-S','(-S)--skip'}'[Skip lines matching <arg>]:pattern' \
+ {'(--before)-B','(-B)--before'}'[Print <arg> lines of leading context]:number' \
+ {'(--after)-A','(-A)--after'}'[Print <arg> lines of trailing context]:number' \
+ '*:pattern::'
+ ;;
+ qlist)
+ _arguments -s $common_args \
+ {'(--installed)-I','(-I)--installed'}'[Just show installed packages]' \
+ {'(--slots)-S','(-S)--slots'}'[Display installed packages with slots]' \
+ {'(--repo)-R','(-R)--repo'}'[Display installed packages with repository]' \
+ {'(--umap)-U','(-U)--umap'}'[Display installed packages with flags used]' \
+ {'(--columns)-c','(-c)--columns'}'[Display column view]' \
+ '--show-debug[Show /usr/lib/debug files]' \
+ {'(--exact)-e','(-e)--exact'}'[Exact match (only CAT/PN or PN without PV)]' \
+ {'(--all)-a','(-a)--all'}'[Show every installed package]' \
+ {'(--dir)-d','(-d)--dir'}'[Only show directories]' \
+ {'(--obj)-o','(-o)--obj'}'[Only show objects]' \
+ {'(--sym)-s','(-s)--sym'}'[Only show symlinks]' \
+ '*:packages:_gentoo_packages installed'
+ ;;
+ qlop)
+ _arguments -s $common_args \
+ {'(--gauge)-g','(-g)--gauge'}'[Gauge number of times a package has been merged]' \
+ {'(--time)-t','(-t)--time'}'[Calculate merge time for a specific package]' \
+ {'(--human)-H','(-H)--human'}'[Print seconds in human readable format (needs -t)]' \
+ {'(--list)-l','(-l)--list'}'[Show merge history]' \
+ {'(--unlist)-u','(-u)--unlist'}'[Show unmerge history]' \
+ {'(--sync)-s','(-s)--sync'}'[Show sync history]' \
+ {'(--current)-c','(-c)--current'}'[Show current emerging packages]' \
+ {'(--logfile)-f','(-f)--logfile'}'[Read emerge logfile instead of /var/log/emerge.log]:log:_files' \
+ '*:packages:_gentoo_packages available'
+ ;;
+ qsearch)
+ _arguments -s $common_args \
+ {'(--all)-a','(-a)--all'}'[List the descriptions of every package in the cache]' \
+ {'(--cache)-c','(-c)--cache'}'[Use the portage cache]' \
+ {'(--ebuilds)-e','(-e)--ebuilds'}'[Use the portage ebuild tree]' \
+ {'(--search)-s','(-s)--search'}'[Regex search package basenames]' \
+ {'(--desc)-S','(-S)--desc'}'[Regex search package descriptions]' \
+ {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
+ {'(--homepage)-H','(-H)--homepage'}'[Show homepage info]' \
+ '*:pattern::'
+ ;;
+ qsize)
+ _arguments -s $common_args \
+ {'(--filesystem)-f','(-f)--filesystem'}'[Show size used on disk]' \
+ {'(--all)-a','(-a)--all'}'[Size all installed packages]' \
+ {'(--sum)-s','(-s)--sum'}'[Include a summary]' \
+ {'(--sum-only)-S','(-S)--sum-only'}'[Show just the summary]' \
+ {'(--megabytes)-m','(-m)--megabytes'}'[Display size in megabytes]' \
+ {'(--kilobytes)-k','(-k)--kilobytes'}'[Display size in kilobytes]' \
+ {'(--bytes)-b','(-b)--bytes'}'[Display size in bytes]' \
+ {'(--ignore)-i','(-i)--ignore'}'[Ignore regexp string]:pattern' \
+ '*:packages:_gentoo_packages installed'
+ ;;
+ quse)
+ _arguments -s $common_args \
+ {'(--exact)-e','(-e)--exact'}'[Show exact non regexp matching using strcmp]' \
+ {'(--all)-a','(-a)--all'}'[Show annoying things in IUSE]' \
+ {'(--keywords)-K','(-K)--keywords'}'[Use the KEYWORDS vs IUSE]' \
+ {'(--license)-L','(-L)--license'}'[Use the LICENSE vs IUSE]' \
+ {'(--describe)-D','(-D)--describe'}'[Describe the USE flag]' \
+ {'(--format)-F','(-F)--format'}'[Use your own variable formats: -F NAME=]:format' \
+ {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
+ '*:use flag:_gentoo_packages useflag'
+ ;;
+ qtbz2)
+ _arguments -s $common_args \
+ {'(--dir)-d','(-d)--dir'}'[Change to specified directory]:directory:_files -/' \
+ {'(--join)-j','(-j)--join'}'[Join tar.bz2 + xpak into a tbz2]:*:tar.bz2 file and xpak file:_files -g \*.\(tar.bz2\|xpak\)' \
+ {'(--split)-s','(-s)--split'}'[Split a tbz2 into a tar.bz2 + xpak]:tbz2 file:_files -g \*.tbz2' \
+ {'(--tarbz2)-t','(-t)--tarbz2'}'[Just split the tar.bz2]:tbz2 file:_files -g \*.tbz2' \
+ {'(--xpak)-x','(-x)--xpak'}'[Just split the xpak]:tbz2 file:_files -g \*.tbz2' \
+ {'(--stdout)-O','(-O)--stdout'}'[Write files to stdout]'
+ ;;
+ qpkg)
+ _arguments -s $common_args \
+ {'(--clean)-c','(-c)--clean'}'[clean pkgdir of unused binary files]' \
+ {'(--eclean)-E','(-E)--eclean'}'[clean pkgdir of files not in the tree anymore (slow)]' \
+ {'(--pretend)-p','(-p)--pretend'}'[pretend only]' \
+ {'(--pkgdir)-P','(-P)--pkgdir'}'[alternate package directory]:alternate pkgdir:_files -/' \
+ '*:Installed packages:_gentoo_packages installed_versions'
+ ;;
+ qxpak)
+ _arguments -s $common_args \
+ {'(--list)-l','(-l)--list'}'[List the contents of an archive]:xpak archive:_files -g \*.xpak' \
+ {'(--extract)-x','(-x)--extract'}'[Extract the contents of an archive]:xpak archive:_files -g \*.xpak' \
+ {'(--create)-c','(-c)--create'}'[Create an archive of a directory/files]:*:archive name and files to archive:_files' \
+ {'(--dir)-d','(-d)--dir'}'[Change to specified directory]:directory:_files -/' \
+ {'(--stdout)-O','(-O)--stdout'}'[Write files to stdout]'
+ ;;
esac
+
+# vim: set et sw=2 sts=2 ts=2 ft=zsh: