chiark / gitweb /
Allow a subset of checks to be run.
[rcheck] / rcheck
diff --git a/rcheck b/rcheck
index c4f59a87f3c827673ff8f11643b7af9b570ee355..9849a3981be67455c6029f5a10f59b35b455ae6c 100755 (executable)
--- a/rcheck
+++ b/rcheck
@@ -12,12 +12,29 @@ do
   prog=$(readlink "${prog##*/}")
 done
 
+args=""
+usage () {
+  echo "usage: ${0##*/} [-[MIN-][MAX]] [HOST...]"
+}
+while :; do
+  case $# in 0) break ;; esac
+  case $1 in
+    -) break ;;
+    --) shift; break ;;
+    -*[!0-9]*-* | -*-*[!0-9]*) usage >&2; exit 1 ;;
+    -*-) a=${1#-}; a=${a%-}; args="$a" ;;
+    -*-*) a=${1#-}; b=${a#*-}; a=${a%-*}; args="$a $b" ;;
+    -*[!0-9]*) usage >&2; exit 1 ;;
+    -*) a=${1#-}; args="0 $a" ;;
+    *) break ;;
+  esac
+  shift
+done
 case $# in 0) set -- $(expand-list /etc/slaves :rcheck_hosts) ;; esac
 
 exec 4>&1
 rc=0
 for host in "$@"; do
-
   nrc=$(
     exec 5>&1
     { { { set +e
@@ -39,7 +56,7 @@ trap "cd /; rm -rf /tmp/$tmpdir" INT TERM QUIT HUP EXIT
 cd $tmpdir
 
 tar xzf -
-./check'
+./check'" $args"
          rc=$?; set -e; echo $rc >&5
          case $rc in
            0) ;;