diff --git a/elements/base/bin/dib-run-parts b/elements/base/bin/dib-run-parts new file mode 100755 index 000000000..365607ab8 --- /dev/null +++ b/elements/base/bin/dib-run-parts @@ -0,0 +1,51 @@ +#!/bin/bash +# Inspired by Debian and RedHat run-parts but portable and specific to di-b. +# +# Copyright 2012 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +set -ue + +name=$(basename $0) + +usage() { + echo "usage: $name scripts_directory" >&2 + exit 1 +} + +output () { + echo $name $(date) $* >&2 +} + +if [ $# -lt 1 ] ; then + usage +fi + +target_dir=$1 + +if ! [ -d $target_dir ] ; then + output $target_dir must exist and be a directory + usage +fi + +# We specifically only want to sort *by the numbers*. +# Lexical sorting is not guaranteed. +targets=$(find $target_dir -type f -executable \! -name '.*' -printf '%f\n' | sort -n) + +for target in $targets ; do + output "Running $target_dir/$target" + $target_dir/$target + output "$target completed" +done