#!/bin/sh

usage () {
  echo "Usage: ${0#*/} [DIRECTORY]..."
  echo "Run all executable scripts in one or more directories"

  exit $1
  }

ERRORS=

if [ -z "$1" ]; then
  usage 2
fi

for dir in "$@"; do
  dir=${dir%/}
  if [ ! -d "$dir" ]; then
    echo "$dir: invalid directory"

    usage 2
  fi

  for file in "$dir"/*; do
    if [ -x "$file" ]; then
      "$file"

      if [ "$?" -gt 0 ]; then
        ERRORS="$ERRORS $file"
      fi
    fi
  done
done

if [ -n "$ERRORS" ]; then
  echo "There were errors in the following scripts:$ERRORS"

  exit 1
fi
