Re: [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path

3 messages, 2 authors, 2018-08-08 · open the first message on its own page

Re: [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path

From: Junio C Hamano <hidden>
Date: 2018-08-07 22:11:54

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.

[PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path

From: Sebastian Kisela <hidden>
Date: 2018-08-08 08:51:10

Junio thanks for the tip! Your suggestion definitely looks better.

BTW. I apologize for polluting the git mailing list with the recent
email. I am still new to git-send-email.

[PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path

From: Sebastian Kisela <hidden>
Date: 2018-08-08 08:51:11

On Fedora-derived systems, the apache httpd package installs modules
under /usr/lib{,64}/httpd/modules, depending on whether the system is
32- or 64-bit.  A symlink from /etc/httpd/modules is created which
points to the proper module path.  Use it to support apache on Fedora,
CentOS, and Red Hat systems.

Written with assistance of Todd Zullinger [off-list ref] and
Junio C Hamano [off-list ref].

Signed-off-by: Sebastian Kisela <redacted>
---
 git-instaweb.sh | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/git-instaweb.sh b/git-instaweb.sh
index 47e38f34c..675add184 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -326,13 +326,17 @@ EOF
 }
 
 apache2_conf () {
-	if test -z "$module_path"
-	then
-		test -d "/usr/lib/httpd/modules" &&
-			module_path="/usr/lib/httpd/modules"
-		test -d "/usr/lib/apache2/modules" &&
-			module_path="/usr/lib/apache2/modules"
-	fi
+	for candidate in \
+		/etc/httpd \
+		/usr/lib/apache2 \
+		/usr/lib/httpd ;
+	do
+		if test -d "$candidate/modules"
+		then
+			module_path="$candidate/modules"
+			break
+		fi
+	done
 	bind=
 	test x"$local" = xtrue && bind='127.0.0.1:'
 	echo 'text/css css' > "$fqgitdir/mime.types"
-- 
2.14.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help