diff options
Diffstat (limited to '.zsh/zshfunctions')
-rw-r--r-- | .zsh/zshfunctions | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/.zsh/zshfunctions b/.zsh/zshfunctions new file mode 100644 index 0000000..118e74d --- /dev/null +++ b/.zsh/zshfunctions @@ -0,0 +1,53 @@ +# Nice mappings to restart/... the services +Start Stop Reload Restart () +{ + [[ $UID != 0 ]] && SUDO="sudo" + $SUDO /etc/init.d/$1 ${0:l} +} + +# Change to the directory of a specific package +cdu () +{ + local cp + + [[ -n $1 ]] && cp=$(eix -e $1 --format "<category>/<name>" 2>/dev/null | head -n1) + + cd /usr/portage/${cp} +} + +# Open the ebuild with a specified command +open_ebuild () +{ + local ebuild=$(equery w $2 2> /dev/null) + + if [[ -z $ebuild ]]; then + echo "Trying masked packages too..." + ebuild=$(equery w -m $2 2> /dev/null) + fi + + if [[ -n $ebuild ]]; then + $1 $ebuild + else + echo "No ebuild found" + fi +} + +if [[ $UID == 0 ]]; then + + # unpack a package + unpack() + { + ebuild $(equery w -m $1) clean unpack + } + + # set job count to 1 if there is only one package to install + emerge() + { + local e=$(whence -p emerge) + if [[ $# < 3 ]]; then + $e --jobs=1 $@ + else + $e $@ + fi + } +fi |