101 lines
3.5 KiB
Bash
Executable file
101 lines
3.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
version=0.22
|
|
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/ | grep '^[1-9]' | 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)
|
|
for n in $(seq $((num-5)) $num); do
|
|
trac-admin /www/tools.ietf.org/tools/ietfdb wiki export IETF${n}SprintSignUp \
|
|
| egrep "^\|\|" | tail -n +2 | python -c '
|
|
import sys, re
|
|
altlogin = {
|
|
"ietf@augustcellars.com": "schaad",
|
|
}
|
|
for line in sys.stdin:
|
|
blank, name, email, rest = line.strip().split("||", 3)
|
|
login, dummy = re.split("[@.]", email, 1)
|
|
if email in altlogin:
|
|
login = altlogin[email]
|
|
print "\t".join((login.strip().lower(), email.strip().lower(), name.strip())) ' \
|
|
| update $progdir/sprint$n.txt
|
|
done
|
|
|
|
cat $(ls $progdir/sprint*.txt | tail -n 2) | 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 regards,
|
|
|
|
Henrik (via the $program script)
|
|
|
|
EOF
|
|
else
|
|
echo " branch personal/$login/$target already exists."
|
|
fi
|
|
done
|