dib-run-parts should dereference symlinks

dib-run-parts should dereference symlinks, and if they point to an
executable file, execute that file as a script. This can be accomplished
by using the xtype predicate in the find command instead of the type
predicate.

This change is needed so that we can dynamically symlink hook scripts
into hook directories such as install.d at runtime to support different
install types.

Change-Id: I933e7f4b4dcf16956841d8c14aa63b0f9a18fc5d
This commit is contained in:
James Slagle 2014-01-15 14:54:46 -05:00
parent de7deb7ce9
commit 79f31d0476

View File

@ -59,7 +59,7 @@ fi
# parallelized later # parallelized later
# Note: -maxdepth 1 ensures only files in the target directory (but not # Note: -maxdepth 1 ensures only files in the target directory (but not
# subdirectories) are run, which is the way run-parts behaves. # subdirectories) are run, which is the way run-parts behaves.
targets=$(find $target_dir -maxdepth 1 -type f -executable -printf '%f\n' | grep -E "$allowed_regex" | LANG=C sort -n) targets=$(find $target_dir -maxdepth 1 -xtype f -executable -printf '%f\n' | grep -E "$allowed_regex" | LANG=C sort -n)
if [ "$show_list" == "1" ] ; then if [ "$show_list" == "1" ] ; then
for target in $targets ; do for target in $targets ; do