wrapGAppsHook: Correct wrapProgram invocations

This change fixes several defects in the way `wrapGAppsHook` selected
the executable to wrap.

Previously, it would wrap any top-level files in the target `/bin` and
`/libexec` directories, including directories and non-executable
files.  In addition, it failed to wrap files in subdirectories.

Now, it uses `find` to iterate over these directory hierarchies,
selecting only executable files for wrapping.
This commit is contained in:
Taahir Ahmed 2017-04-15 21:50:13 -05:00
parent 100919ab5b
commit 8b9f153bb9

View File

@ -36,9 +36,10 @@ wrapGAppsHook() {
done
if [ -z "$dontWrapGApps" ]; then
for i in $prefix/bin/* $prefix/libexec/*; do
echo "Wrapping app $i"
wrapProgram "$i" "${gappsWrapperArgs[@]}"
find "${prefix}/bin" "${prefix}/libexec" -type f -executable -print0 \
| while IFS= read -r -d '' file; do
echo "Wrapping program $file"
wrapProgram "$file" "${gappsWrapperArgs[@]}"
done
fi
}