+alias ebuild-sync='rsync -av ./ /usr/portage/${PWD#/usr/local/src/gentoo-x86/} --exclude ChangeLog --exclude CVS --exclude metadata.xml --delete'
+alias ebuild-emerge='sudo emerge -1av $(echo ${PWD} | awk -F/ "{printf \"%s/%s\", \$(NF-1), \$(NF)}")'
+
cvs_gentoo_url() {
_cvs_gentoo_url() {
if [[ -n $2 ]] ; then
sed "s,^commit ,http://git.overlays.gentoo.org/gitweb/?p=${repo};a=commitdiff;h=,"
}
svn_gentoo_url() {
+ if [[ -z $* ]] ; then
+ svn info | \
+ awk '{
+ if ($1 == "URL:") {
+ URL = "http://sources.gentoo.org/" gensub(/.*svnroot\/([^/]*).*/,"\\1","");
+ } else if ($1 == "Revision:") {
+ rev = $2
+ URL = URL "?rev=" (rev + 1) "&view=rev"
+ }
+ }
+ END { print URL }'
+ return 0
+ fi
+
local f
for f in "$@" ; do
svn info "${f}" | \
done
}
-er() {
+_echangelog() {
[[ ! -e ChangeLog ]] \
&& echo "No ChangeLog" \
&& return 1
echangelog "$@" || return 1
- repoman commit -m "$@" || return 1
}
+er() {
+ repoman commit --echangelog=y "${@:1:$#-1}" -m "${@:$#}" || return 1
+}
+ec() {
+ (
+ _echangelog "$@" || exit 1
+ cvs commit -m "$@" || exit 1
+ )
+}
+
att() {
declare url=$1 tmp=$(mktemp) filename || return 1
[[ $url == */* ]] || url="http://bugs.gentoo.org/attachment.cgi?id=$url"
return 1
}
arch_emails() {
- local a ret=""
+ local ret
if [[ $@ == *.ebuild* ]] ; then
local e keys
for e in "$@" ; do
keys=$(sed -n '/^[[:space:]]*KEYWORD/{s:.*=::;s:"::g;p}' ${e})
for a in ${keys} ; do
[[ ${a} != ~* ]] && continue
- ret="${ret} ${a/\~}@gentoo.org"
+ ret="${ret} ${a}"
done
done
else
- for a in "$@" ; do
- ret="${ret} ${a/\~}@gentoo.org"
- done
+ ret="$*"
fi
- echo ${ret}
+ printf '%s@gentoo.org ' ${ret//\~}
+ echo
+}
+stable_arch_emails() {
+ arch_emails "$@" | sed -r -e 's:([^ ]*-[^ ]*|mips)@[^ ]*::g'
+}
+eget_maintainer() {
+ local f=${1:-metadata.xml}
+ local maintainer=$(xml sel -t -v pkgmetadata/herd $f)
+ if [[ ${maintainer:-no-herd} == "no-herd" ]] ; then
+ maintainer=$(xml sel -t -v pkgmetadata/maintainer/email $f)
+ elif [[ -n ${maintainer} ]] ; then
+ maintainer="${maintainer}@gentoo.org"
+ fi
+ if [[ -z ${maintainer} ]] ; then
+ echo "No maintainer found in $f"
+ return 1
+ fi
+ echo ${maintainer}
+ return 0
}
submit_bug_stable() {
local msg="doit"
echo "Usage: submit_bug_stable <ebuilds>"
return 1
fi
- local maintainer=$(xml sel -t -v pkgmetadata/herd metadata.xml)
- if [[ ${maintainer} == "no-herd" ]] ; then
- maintainer=$(xml sel -t -v pkgmetadata/maintainer/email metadata.xml)
- elif [[ -n ${maintainer} ]] ; then
- maintainer="${maintainer}@gentoo.org"
- fi
- if [[ -z ${maintainer} ]] ; then
- echo "No maintainer found in metadata.xml"
- return 1
- fi
+ local maintainer
+ maintainer=$(eget_maintainer) || return 1
local cat=$(basename $(dirname $(pwd)))
local pkg=${1%.ebuild}
local ebuild=${pkg}.ebuild
- local cc=$(arch_emails ${ebuild} | sed -r -e 's:([^ ]*-fbsd|mips)@[^ ]*::g')
+ local cc=$(stable_arch_emails ${ebuild})
if [[ -z ${cc} ]] ; then
echo "Unable to read ebuild '${ebuild}'"
return 1
fi
- bugz post \
- -u vapier@gentoo.org \
- -t "Stabilize ${cat}/${pkg}" \
+ if [[ ${maintainer} == *" "* ]] ; then
+ cc+=",${maintainer#* }"
+ maintainer=${maintainer%% *}
+ fi
+ gbugz \
+ post \
+ --batch \
+ -t "${cat}/${pkg}: stabilize" \
-d "${msg}" \
-a "${maintainer}" \
- --cc="${cc}" \
- -U "" \
+ --cc="${cc// /,}" \
-k STABLEREQ \
--product='Gentoo Linux' \
--component=Ebuilds \
- --version= \
- --no-append-command \
- --depends-on= \
- --blocked= \
- --priority=P2 \
+ --priority=Normal \
--severity=enhancement
}
}
erstable() { _erit stable "$@" ; }
erlove() { _erit love "$@" ; }
+
+export PORTAGE_INST_UID=${UID}
+export PORTAGE_INST_GID=`id -g`