# 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 "/" 2>/dev/null | head -n1) cd /usr/portage/${cp} } # Open the ebuild with a specified command open_ebuild () { local ebuild=$(equery --debug w $2 2> /dev/null) if [[ -z $ebuild ]]; then echo "Trying masked packages too..." ebuild=$(equery --debug w -m $2 2> /dev/null) fi if [[ -n $ebuild ]]; then $1 $ebuild else echo "No ebuild found" fi } # Commit a new config change # Works only for simple cases cci () { if [[ $# == 0 ]]; then echo "No message given. Aborting." return 1 fi local message=$1 local tok=__cci__ pushd -q ~ cstg diff echo -n "Is this ok? [y/n] " if ! read -q; then echo echo "I would have done the wrong thing ... aborting!" return 2 fi echo ">> Creating new patch" cstg new $tok -m "$message" echo ">> Refreshing" cstg refresh if [[ -z $(cstg files) ]]; then echo echo "Ehm - this patch is empty. Narf. Aborting!" echo "Deleting useless patch" cstg del $tok return 3 fi echo ">> Committing" cstg commit $tok if [[ -n $(cstg series --applied) ]]; then echo echo "Urgs! Something went wrong. There are still patches applied." echo "Clean up for yourself. Aborting here!" return 4 fi echo ">> Pushing to remote" config push echo ">> Re-apply patches" cstg push -a echo ">> Done" popd -q } 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