#!/bin/sh
# run-parts:  Runs all the scripts found in a directory.

# keep going when something fails
set +e

if [ $# -lt 1 ]; then
  echo "Usage: run-parts [--arg="argument" | -a argument] <directory>"
  exit 1
fi

ARGS=""

until [ $# -eq 1 ]; do
  if [ "$1" = "-a" ]; then
    shift
    ARGS="$ARGS $1"
    shift
    else
      TMP=$1
      if [ $(echo $TMP | sed -e 's/=.*//g') = "--arg" ]; then
      ARGS="$ARGS $(echo $1 | sed -e 's/--arg=//g')"
      shift
    fi
  fi
done

if [ ! -d $1 ]; then
  echo "Not a directory: $1"
  echo "Usage: run-parts [--arg="argument" | -a argument] <directory>"
  exit 1
fi

# There are several types of files that we would like to
# ignore automatically, as they are likely to be backups
# of other scripts:
IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp"

# Main loop:
for SCRIPT in $1/* ; do
  # If this is not a regular file, skip it:
  if [ ! -f $SCRIPT ]; then
    continue
  fi
  # Determine if this file should be skipped by suffix:
  SKIP=false
  for SUFFIX in $IGNORE_SUFFIXES ; do
    if [ ! "`basename $SCRIPT $SUFFIX`" = "`basename $SCRIPT`" ]; then
      SKIP=true
      break
    fi
  done
  if [ "$SKIP" = "true" ]; then
    continue
  fi
  # If we've made it this far, then run the script if it's executable:
  if [ -x $SCRIPT ]; then
    echo "$SCRIPT:"
    echo
    $SCRIPT $ARGS 2>&1
    echo
  fi
done

exit 0
