summaryrefslogtreecommitdiff
path: root/source/a/dcron/run-parts
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/dcron/run-parts')
-rw-r--r--source/a/dcron/run-parts49
1 files changed, 49 insertions, 0 deletions
diff --git a/source/a/dcron/run-parts b/source/a/dcron/run-parts
new file mode 100644
index 00000000..dd6b59b3
--- /dev/null
+++ b/source/a/dcron/run-parts
@@ -0,0 +1,49 @@
+#!/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
+ echo "$SCRIPT:"
+ echo
+ $SCRIPT 2>&1
+ echo
+ fi
+done
+
+exit 0