Junio C Hamano [off-list ref] writes:
if test -z "$module_path"
then
for candidate in \
/etc/httpd \
/usr/lib/apache2 \
/usr/lib/httpd \
I obviously missed semicolon here...
do
if test -d "$candidate/modules"
then
module_path="$candidate/modules"
break
fi
One more thing to note is that the fourth candidate might not end
with "/modules" and force us to update these existing three to have
"/modules" at the end and lose appending "/modules" from these two
lines to compensate. That is sort of deliberate (i.e. as long as we
can share "/modules" as a common substring at the end, it is OK to
take advantage of that).
done
fi
is when you go from 2 to 3. Two points to note are:
- It would be easier to add the fourth one this way
- The explicit "break" makes it clear that the paths are listed in
decreasing order of precedence (i.e. /etc/httpd if exists makes
/usr/lib/httpd ignored even if the latter exists); the original
"test -d X && M=X ; test -d Y && M=Y" gives higher precedence to
the later items but readers need to wonder if it is intended or
the code is simply being sloppy.
Hope this helps.