#!/bin/bash # Public domained by Timothy Redaelli source /sbin/functions.sh set -e commitmsg="${HOME}"/commit-msg FEATURES="$(portageq envvar FEATURES)" function hasq() { [[ " ${*:2} " == *" $1 "* ]] } if [[ -e "$(type -P keychain)" ]] && hasq sign ${FEATURES}; then keychain --agents gpg "$(portageq envvar PORTAGE_GPG_KEY)" source "${HOME}/.keychain/${HOSTNAME}-sh-gpg" fi "${EDITOR}" "$commitmsg" ECHANGELOG_EDITOR= echangelog < "$commitmsg" if ( ! fgrep -q '.svn' "$(type -P repoman)" ) && [[ -d .svn ]]; then svn add ChangeLog &>/dev/null ebegin "Digesting ebuilds" hasq sign ${FEATURES} && rm -f Manifest for i in *.ebuild; do ebuild $i digest done if hasq sign ${FEATURES}; then ebegin "Signing Manifest" gpg --sign --clearsign --yes --default-key $(portageq envvar PORTAGE_GPG_KEY) --homedir $(portageq envvar PORTAGE_GPG_DIR) Manifest mv Manifest.asc Manifest eend $? fi eend $? svn add Manifest &>/dev/null ebegin "Committing" svn commit -F "$commitmsg" || svn commit .. -F "$commitmsg" eend $? elif ls *.ebuild >/dev/null 2>&1; then repoman -M "$commitmsg" commit elif [[ -d CVS ]]; then cvs commit -F "$commitmsg" else echo "Unknown repository." >&2 exit 1 fi