zshlibs/oh-my-zsh/plugins/gentoo/gentoo.plugin.zsh
2021-11-10 17:41:19 +03:00

61 lines
2.0 KiB
Bash

_package_edit()
{
local context state state_descr line
typeset -A opt_args
local curcontext="$curcontext"
_arguments -C \
"1:portage_conftype:->conftype"\
"2:portage_conffile:->confname"
case $state in
conftype)
_arguments ':Portage Type:(accept_keywords accept_restrict env keywords license mask properties unmask use)'
;;
confname)
local -a conffiles
conffiles=(/etc/portage/package.$words[2]/*(:t))
#printf '\n\n\n\n\naaaaa->%s<-aaaaa%saaaa\n\n\n\n' "$conffiles" "$words"
#_arguments "2:portage_conffile:($conffiles)"
if [[ $words[3] =~ '\w{3,}' ]]; then
_message -r "maybe you need one of these:"$'\n'"$(cd /etc/portage/package.$words[2] 2>& - && grep -lFR $words[3] ./)"
fi
_values "Portage conffile" $conffiles
;;
esac
}
package_edit()
{
local __su_mkdi=${__su_mkdir:-sudo mkdir}
local __su_editor=${__su_editor:-sudoedit}
local SUDO_EDITOR='vim -S /etc/vim/portage-'$1'-rc'
#local SUDO_EDITOR="nano -w -Y /etc/portage"
if [[ -d /etc/portage/package.$1 ]] {
env SUDO_EDITOR="${SUDO_EDITOR}" $__su_editor /etc/portage/package.$1/$2
} elif [[ -n $2 ]] {
$__su_mkdir etc/portage/package.$1
env SUDO_EDITOR="${SUDO_EDITOR}" $__su_editor /etc/portage/package.$1/$2
} else {
env SUDO_EDITOR="${SUDO_EDITOR}" $__su_editor /etc/portage/package.$1
}
}
alias p.env="package_edit env"
alias p.um="package_edit unmask"
alias p.akw="package_edit accept_keywords"
alias p.use="package_edit use"
alias p.mask="package_edit mask"
alias p.lic="package_edit license"
alias mk.conf="sudoedit /etc/portage/make.conf"
alias e-upd="sudo etc-update"
alias s-upd="sudo emerge --update --deep --tree --with-bdeps=y @world"
alias system-update="sudo emerge --update --deep --tree --with-bdeps=y @world"
compdef _package_edit package_edit