Added a --dry-run option to bin/mkdevbranch, and added some exception handling
- Legacy-Id: 17467
This commit is contained in:
parent
866de9784f
commit
bd89c7f5be
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue