#compdef eselect # ~/.zfunctions/_eselect # David Durrleman # # Une complétion pour eselect, un utilitaire gentoo. _eselect () { local globopts sedcmd modnames modopts globopts=("--no-colour[Disable coloured output]") sedcmd="sed -n -e s/^[[:space:]]\+.*1m\([^[:space:]][[:alnum:]-]\+\).*[[:space:]]\+.*$/\1/p" modnames=($(eselect list-modules | ${=sedcmd})) if ((CURRENT == 2)); then _arguments -s \ "$globopts[@]" \ "*:portage:_values 'eselect modules' \$modnames[@]" && return 0 elif ((CURRENT == 3)); then if [[ $words[2] == --no-colour ]]; then _arguments -s \ "*:portage:_values 'eselect modules' \$modnames[@]" && return 0 elif (( $modnames[(I)$words[2]] )); then modopts=($(eselect $words[2] usage | ${=sedcmd})) _arguments -s \ "*:portage:_values 'eselect $words[2] options' \$modopts[@]" && return 0 fi elif ((CURRENT == 4)); then if (( $modnames[(I)$words[3]] )); then modopts=($(eselect $words[3] usage | ${=sedcmd})) _arguments -s \ "*:portage:_values 'eselect $words[3] options' \$modopts[@]" && return 0 fi fi } _eselect "$@"