Adding the sprint branch creation script

- Legacy-Id: 4136
This commit is contained in:
Robert Sparks 2012-03-16 17:45:27 +00:00
parent 03980c3882
commit a985379127

93
test/mkdevbranch Executable file
View file

@ -0,0 +1,93 @@
#!/bin/bash
version=0.21
program=${0##*/}
progdir=${0%/*}
if [ "$progdir" = "$program" ]; then progdir="."; fi
function die() {
echo -e "\n$program: Error: ${1:0:160} ..." >&2
exit 1
}
function warn() {
logger -i -p user.warn -t $program "$*"
echo "$program: Warning: $*" 1>&2;
}
function note() {
logger -i -p user.notice -t $program "$*"
if [ -n "$OPT_VERBOSE" ]; then echo -e "$*"; fi
}
function version() {
echo -e "$program: v$version\n\nRunning as $(id -urn) on $(date +'%Y-%m-%d %H:%M')"
}
#[ "$#" -gt 0 ] || die "Expected the ietf number as argument on the command line, but found nothing"
#[ $1 -gt 70 ] || die "Expected the ietf number as argument on the command line, but found '$1'"
#if [ "$1" ]; then arg=$1; else arg=$(svn info http://svn.tools.ietf.org/svn/tools/ietfdb/trunk/ | egrep "^Last Changed Rev" | awk '{print $4}'); fi
if [ "$1" ]; then arg=$1; else arg=$(svn ls http://svn.tools.ietf.org/svn/tools/ietfdb/tags/ | tail -n 1 | sed -r 's/^(.*)\/$/v\1/' ); fi
if [ "${arg:0:1}" = "v" ]; then
source="tags/${arg:1}"
target="$arg"
rev="release $arg"
else
source="trunk@$arg"
target="r$arg"
rev="repository rev r$arg"
fi
function mksvndir() {
who=$1
if [ "$2" ]; then dir=$2; else dir=$who; fi
if ! svn info http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$dir >/dev/null 2>&1 ; then
echo "Creating personal directory area for IETF datatracker coding: /personal/$dir"
svn mkdir http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$dir -m "Personal SVN dir for $who, for IETF datatracker code"
else
echo "Repository area personal/$dir is already in place."
fi
}
num=$( < /www/tools.ietf.org/meta/current-ietf-number.txt)
trac-admin /www/tools.ietf.org/tools/ietfdb wiki export IETF${num}SprintSignUp \
| egrep "^\|\|" | tail -n +2 | python -c '
import sys, re
for line in sys.stdin:
blank, name, email, rest = line.strip().split("||", 3)
login, dummy = re.split("[@.]", email, 1)
print "\t".join((login.strip().lower(), email.strip().lower(), name.strip())) ' \
| $progdir/update $progdir/sprint$num.txt
cat $(ls $progdir/sprint*.txt | tail -n 4) | sed 's/[ \t]*$//' | sort | uniq | while read login email name; do
echo ""
echo "$login ($name <$email>):"
mksvndir $login
if ! svn info http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target >/dev/null 2>&1 ; then
echo " creating $target branch for $login ($name)."
svn cp http://svn.tools.ietf.org/svn/tools/ietfdb/$source http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target/ -m "New IETF datatracker coding branch for $name" \
&& mail "$name <$email>" -s "A new SVN branch for you for IETF datatracker coding${rev:+, based on $rev}." -b henrik@levkowetz.com <<-EOF
Hi,
This mail has been automatically generated by the $program script.
A new SVN branch has been set up for you for IETF datatracker coding, at
http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target
${rev:+This branch is based on $rev. }You can check it out by doing
svn co http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target
(More instructions about setup is available at
http://trac.tools.ietf.org/tools/ietfdb/wiki/SprintCoderSetup)
Best,
Henrik (via the $program script)
EOF
else
echo " branch personal/$login/$target already exists."
fi
done