Download raw body.
tweak got-build-regress.sh
landed here for curiosity. diff below switches got-build-regress.sh
to use the builtin getopts instead of getopt(1) which is nicer for
scripting and runs the trap on EXIT too, so can avoid to remove
$lockfile at every exit point.
ok?
diff /home/op/w/got
commit - 1a99e0b4097b26cac736de07239a3be7589a48f7
path + /home/op/w/got
blob - 82afa2028dd0be74054dd2348115d8cc87611e14
file + util/got-build-regress.sh
--- util/got-build-regress.sh
+++ util/got-build-regress.sh
@@ -22,30 +22,24 @@ args=`getopt b:fR:r:w: $*`
force=0
testroot="/tmp"
-args=`getopt b:fR:r:w: $*`
-if [ $? -ne 0 ]
-then
- echo "usage: $usage" >&2
- exit 1
-fi
-set -- $args
-while [ $# -ne 0 ]; do
- case "$1"
- in
- -b)
- branch="$2"; shift; shift;;
- -f)
- force=1; shift;;
- -w)
- worktree="$2"; shift; shift;;
- -r)
- fromaddr_arg="-r $2"; shift; shift;;
- -R)
- testroot="$2"; shift; shift;;
- --)
- shift; break;;
+while getopts b:fR:r:w: arg; do
+ case $arg in
+ b)
+ branch="$OPTARG" ;;
+ f)
+ force=1 ;;
+ w)
+ worktree="$OPTARG" ;;
+ r)
+ fromaddr_arg="-r $OPTARG" ;;
+ R)
+ testroot="$OPTARG" ;;
+ ?)
+ echo "usage: $usage" >&2
+ exit 1 ;;
esac
done
+shift $(($OPTIND - 1))
recipients="$@"
if [ -z "$recipients" ]; then
@@ -63,13 +57,10 @@ cd "$worktree"
ncpu=`sysctl -n hw.ncpuonline`
lockfile=$worktree/.${prog}.lock
-cd "$worktree"
-if [ $? -ne 0 ]; then
- exit 1
-fi
+cd "$worktree" || exit 1
lockfile -r 3 "$lockfile" || exit 1
-trap "rm -f '$lockfile'" HUP INT QUIT KILL TERM
+trap "rm -f '$lockfile'" HUP INT QUIT KILL TERM EXIT
rm -f regress.log failures.log
echo -n "$prog for branch '$branch' on " > build.log
@@ -89,13 +80,11 @@ if [ "$update_status" != "0" ]; then
update_status="$?"
if [ "$update_status" != "0" ]; then
mail $fromaddr_arg -s "$prog update failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
new_basecommit=`cat .got/base-commit`
if [ "$force" != "1" -a "$old_basecommit" == "$new_basecommit" ]; then
- rm -rf "$lockfile"
exit 0
fi
@@ -105,7 +94,6 @@ if [ "$build_status" != "0" ]; then
build_status="$?"
if [ "$build_status" != "0" ]; then
mail $fromaddr_arg -s "$prog build failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
log_cmd build.log make install
@@ -113,7 +101,6 @@ if [ "$build_status" != "0" ]; then
build_status="$?"
if [ "$build_status" != "0" ]; then
mail $fromaddr_arg -s "$prog build failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
@@ -127,7 +114,6 @@ if [ "$regress_status" != "0" -o "$regress_failure_gre
printf "\n\n\t Test failures:\n\n" >> build.log
cat failures.log >> build.log
mail $fromaddr_arg -s "$prog regress failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
@@ -141,7 +127,6 @@ if [ "$regress_status" != "0" -o "$regress_failure_gre
printf "\n\n\t Test failures:\n\n" >> build.log
cat failures.log >> build.log
mail $fromaddr_arg -s "$prog regress failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
@@ -153,10 +138,7 @@ if [ "$build_status" != "0" ]; then
build_status="$?"
if [ "$build_status" != "0" ]; then
mail $fromaddr_arg -s "$prog release mode build failure" $recipients < build.log
- rm -rf "$lockfile"
exit 0
fi
-
-rm -f "$lockfile"
exit 0
tweak got-build-regress.sh