Skip to content

Commit a985379

Browse files
committed
Adding the sprint branch creation script
- Legacy-Id: 4136
1 parent 03980c3 commit a985379

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

test/mkdevbranch

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#!/bin/bash
2+
3+
version=0.21
4+
program=${0##*/}
5+
progdir=${0%/*}
6+
if [ "$progdir" = "$program" ]; then progdir="."; fi
7+
8+
function die() {
9+
echo -e "\n$program: Error: ${1:0:160} ..." >&2
10+
exit 1
11+
}
12+
13+
function warn() {
14+
logger -i -p user.warn -t $program "$*"
15+
echo "$program: Warning: $*" 1>&2;
16+
}
17+
18+
function note() {
19+
logger -i -p user.notice -t $program "$*"
20+
if [ -n "$OPT_VERBOSE" ]; then echo -e "$*"; fi
21+
}
22+
23+
function version() {
24+
echo -e "$program: v$version\n\nRunning as $(id -urn) on $(date +'%Y-%m-%d %H:%M')"
25+
}
26+
27+
#[ "$#" -gt 0 ] || die "Expected the ietf number as argument on the command line, but found nothing"
28+
#[ $1 -gt 70 ] || die "Expected the ietf number as argument on the command line, but found '$1'"
29+
30+
#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
31+
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
32+
33+
if [ "${arg:0:1}" = "v" ]; then
34+
source="tags/${arg:1}"
35+
target="$arg"
36+
rev="release $arg"
37+
else
38+
source="trunk@$arg"
39+
target="r$arg"
40+
rev="repository rev r$arg"
41+
fi
42+
43+
function mksvndir() {
44+
who=$1
45+
if [ "$2" ]; then dir=$2; else dir=$who; fi
46+
if ! svn info http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$dir >/dev/null 2>&1 ; then
47+
echo "Creating personal directory area for IETF datatracker coding: /personal/$dir"
48+
svn mkdir http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$dir -m "Personal SVN dir for $who, for IETF datatracker code"
49+
else
50+
echo "Repository area personal/$dir is already in place."
51+
fi
52+
}
53+
54+
num=$( < /www/tools.ietf.org/meta/current-ietf-number.txt)
55+
trac-admin /www/tools.ietf.org/tools/ietfdb wiki export IETF${num}SprintSignUp \
56+
| egrep "^\|\|" | tail -n +2 | python -c '
57+
import sys, re
58+
for line in sys.stdin:
59+
blank, name, email, rest = line.strip().split("||", 3)
60+
login, dummy = re.split("[@.]", email, 1)
61+
print "\t".join((login.strip().lower(), email.strip().lower(), name.strip())) ' \
62+
| $progdir/update $progdir/sprint$num.txt
63+
64+
cat $(ls $progdir/sprint*.txt | tail -n 4) | sed 's/[ \t]*$//' | sort | uniq | while read login email name; do
65+
echo ""
66+
echo "$login ($name <$email>):"
67+
mksvndir $login
68+
if ! svn info http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target >/dev/null 2>&1 ; then
69+
echo " creating $target branch for $login ($name)."
70+
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" \
71+
&& mail "$name <$email>" -s "A new SVN branch for you for IETF datatracker coding${rev:+, based on $rev}." -b henrik@levkowetz.com <<-EOF
72+
Hi,
73+
74+
This mail has been automatically generated by the $program script.
75+
76+
A new SVN branch has been set up for you for IETF datatracker coding, at
77+
http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target
78+
${rev:+This branch is based on $rev. }You can check it out by doing
79+
svn co http://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target
80+
81+
(More instructions about setup is available at
82+
http://trac.tools.ietf.org/tools/ietfdb/wiki/SprintCoderSetup)
83+
84+
85+
Best,
86+
87+
Henrik (via the $program script)
88+
89+
EOF
90+
else
91+
echo " branch personal/$login/$target already exists."
92+
fi
93+
done

0 commit comments

Comments
 (0)