+ FOUND=
+ PROG="$1"
+ IFS_SAVE="$IFS"
+ IFS=:
+ for D in $PATH; do
+ if [ -z "$D" ]; then
+ D=.
+ fi
+ if [ -f "$D/$PROG" ] && [ -x "$D/$PROG" ]; then
+ printf '%s\n' "$D/$PROG"
+ break
+ fi
+ done
+ IFS="$IFS_SAVE"
+}
+
+require_prog()
+{
+ if [ -z "$(findprog $1)" ]; then
+ test_skip "missing $1"
+ fi
+}
+
+# Some stuff for doing silly progress indicators
+progress_update()
+{
+ test -t 1 || return 0 # supress progress meter if non-interactive
+ THIS="$1"
+ FIRST="$2"
+ LAST="$3"
+ RANGE="$(expr $LAST - $FIRST ||:)"
+ PROG="$(expr $THIS - $FIRST ||:)"
+ # this automatically rounds to nearest integer
+ PERC="$(expr 100 \* $PROG / $RANGE ||:)"
+ # note \r so next update will overwrite
+ printf "%3d%%\r" $PERC