diff --git a/bin/mkdevbranch b/bin/mkdevbranch index d109e5461..3f248a60d 100755 --- a/bin/mkdevbranch +++ b/bin/mkdevbranch @@ -78,12 +78,13 @@ trap 'echo "$program($LINENO): Command failed with error code $? ([$$] $0 $*)"; # Option parsing # Options -shortopts=hm:M:vV -longopts=help,meeting=,message=,verbose,version +shortopts=hm:M:nvV +longopts=help,meeting=,message=,dry-run,verbose,version # Default values num="" msg="" +do="" if [ "$(uname)" = "Linux" ]; then args=$(getopt -o "$shortopts" --long "$longopts" -n '$program' -- $SV "$@") @@ -103,6 +104,7 @@ while true ; do -h| --help) usage; exit;; # Show this help, then exit -m| --meeting) num=$2; shift;; # Specify the IETF meeting number -M| --message) msg=$2; shift;; # Specify extra message text + -n| --dry-run) do="echo -- ==>";; # Only show what would be done -v| --verbose) VERBOSE=1;; # Be more talkative -V| --version) version; exit;; # Show program version, then exit --) shift; break;; @@ -128,8 +130,8 @@ function mksvndir() { who=$1 if [ "$2" ]; then dir=$2; else dir=$who; fi if ! svn info https://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 https://svn.tools.ietf.org/svn/tools/ietfdb/personal/$dir -m "Personal SVN dir for $who, for IETF datatracker code" + $do echo "Creating personal directory area for IETF datatracker coding: /personal/$dir" + $do svn mkdir https://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 @@ -143,7 +145,7 @@ cd $progdir if [ "$who" ]; then mksvndir $who - svn cp https://svn.tools.ietf.org/svn/tools/ietfdb/$source https://svn.tools.ietf.org/svn/tools/ietfdb/personal/$who/$target/ -m "New branch for $target" + $do svn cp https://svn.tools.ietf.org/svn/tools/ietfdb/$source https://svn.tools.ietf.org/svn/tools/ietfdb/personal/$who/$target/ -m "New branch for $target" echo "New branch: ^/personal/$who/$target" else [ "$msg" ] && msg=" @@ -154,11 +156,21 @@ $msg trac-admin /www/tools.ietf.org/tools/ietfdb wiki export IETF${n}SprintSignUp \ | egrep "^\|\|" | tail -n +2 | python -c ' import sys, re -afile = open("aliases") -aliases = dict([ line.strip().split(None,1) for line in afile.read().splitlines() ]) +with open("aliases") as afile: + try: + aliases = dict([ line.strip().split(None,1) for line in afile.read().splitlines() if line.strip() ]) + except ValueError: + sys.stderr.write([ line.strip().split(None,1) for line in afile.read().splitlines() if line.strip() ]) + raise for line in sys.stdin: - blank, name, email, rest = line.strip().split("||", 3) + try: + blank, name, email, rest = line.strip().split("||", 3) + email = email.strip() + except ValueError: + sys.stderr.write(line+"\n") + raise + login, dummy = re.split("[@.]", email, 1) if email in aliases: login = aliases[email] @@ -171,9 +183,9 @@ for line in sys.stdin: echo "$login ($name <$email>):" mksvndir $login if ! svn info https://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target >/dev/null 2>&1 ; then - echo " creating $target branch for $login ($name)." - svn cp https://svn.tools.ietf.org/svn/tools/ietfdb/$source https://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 + $do echo " creating $target branch for $login ($name)." + $do svn cp https://svn.tools.ietf.org/svn/tools/ietfdb/$source https://svn.tools.ietf.org/svn/tools/ietfdb/personal/$login/$target/ -m "New IETF datatracker coding branch for $name" \ + && $do mail "$name <$email>" -s "A new SVN branch for you for IETF datatracker coding${rev:+, based on $rev}." -b henrik@levkowetz.com <<-EOF Hi, $msg This mail has been automatically generated by the $program script. @@ -199,7 +211,7 @@ for line in sys.stdin: EOF else - echo " branch personal/$login/$target already exists." + $do echo " branch personal/$login/$target already exists." fi done fi