summaryrefslogtreecommitdiffstats
path: root/patches/source/dcron/run-parts
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/dcron/run-parts')
-rw-r--r--patches/source/dcron/run-parts46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/source/dcron/run-parts b/patches/source/dcron/run-parts
new file mode 100644
index 000000000..97e7efed4
--- /dev/null
+++ b/patches/source/dcron/run-parts
@@ -0,0 +1,46 @@
+#!/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 .orig .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