47 lines
1.0 KiB
Bash
47 lines
1.0 KiB
Bash
#!/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 <directory>"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d $1 ]; then
|
|
echo "Not a directory: $1"
|
|
echo "Usage: run-parts <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
|
|
$SCRIPT || echo "$SCRIPT failed."
|
|
fi
|
|
done
|
|
|
|
exit 0
|