# 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 () { cd $(dirname $1) } # 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 () { ask () { echo -n "Is this ok? [y/n] " if ! read -q; then echo echo "I would have done the wrong thing ... aborting!" return 2 fi } if [[ $# == 0 ]]; then echo "No message given. Aborting." return 1 fi local message=$1 local tok=__cci__ pushd -q ~ local indexed="$(config status --porcelain | grep -v '^ ')" if [[ -n $indexed ]]; then echo ">> Stuff in index -- only commiting this" echo "$indexed" ask || return 2 else echo ">> Nothing in index -- commiting everything which has changed" echo "$(config status)" ask || return 2 config add -u fi cstg diff -O --cached ask || return 2 echo ">> Creating new patch" cstg new $tok -m "$message" echo ">> Refreshing" cstg refresh -i 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 -k echo ">> Done" popd -q } check_libs() { for i in $(ps -A -o pid | tail -n +2); do pmap $i | grep deleted && echo $(ps $i) done } menc() { local p read -rs "p?Password: " echo $p | encfs --stdinpass ~/.enc/schreiben_in ~/schreiben/in echo $p | encfs --stdinpass ~/.enc/schreiben_out ~/schreiben/out unset p } 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