[PATCH v2] instaweb: make it compatible with Mac OS X 10.5's apache installation.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When in apache2 mode if there isn't an apache2 command on the
system but there is a httpd command installed (like there is
on Mac OS X) use that command instead.

When in apache2 mode and there isn't a module_path specified, look for
module paths in /usr/lib/apache2/modules _and_ /usr/libexec/apache2,
in that order.

Added a LockFile directive to the apache2 config because the default
location of /private/var/run is only root-writeable on Mac OS X.

Signed-off-by: nathan spindel <nathans@xxxxxxxxx>
---
 git-instaweb.sh |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/git-instaweb.sh b/git-instaweb.sh
index 6f91c8f..00e147f 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -172,7 +172,59 @@ EOF
 }
 
 apache2_conf () {
-	test -z "$module_path" && module_path=/usr/lib/apache2/modules
+	# if there isn't an apache2 command on the system but there
+	# is a httpd command which looks like apache, use that instead
+	# for Mac OS X compatibility.
+	httpd_only="`echo $httpd | cut -f1 -d' '`"
+	if ! type $httpd_only > /dev/null 2>&1
+	then
+		found_apache_command=1
+		httpd_parent_paths="/usr/local/sbin /usr/sbin"
+		for i in $httpd_parent_paths; do
+			if test -x "$i/$httpd_only"
+			then
+				found_apache_command=0
+				break
+			fi
+		done
+
+		if test $found_apache_command != 0
+		then
+			alt_apache="httpd"
+			if type $alt_apache > /dev/null 2>&1
+			then
+				$alt_apache -v | grep Apache > /dev/null 2>&1
+				if test $? == 0
+				then
+					httpd=`echo "$httpd" | sed "s/apache2/httpd/"`
+				else
+					for i in $httpd_parent_paths; do
+						if test -x "$i/$alt_apache"
+						then
+							$i/$alt_apache -v | grep Apache > /dev/null 2>&1
+							if test $? == 0
+							then
+								httpd=`echo "$httpd" | sed "s/apache2/httpd/"`
+								break
+							fi
+						fi
+					done
+				fi
+			fi
+		fi
+	fi
+
+	if test -z "$module_path"
+	then
+		for path in /usr/lib/apache2/modules /usr/libexec/apache2; do
+			if test -d "$path"
+			then
+				module_path="$path"
+				break
+			fi
+		done
+	fi
+
 	mkdir -p "$GIT_DIR/gitweb/logs"
 	bind=
 	test x"$local" = xtrue && bind='127.0.0.1:'
@@ -182,6 +234,7 @@ ServerName "git-instaweb"
 ServerRoot "$fqgitdir/gitweb"
 DocumentRoot "$fqgitdir/gitweb"
 PidFile "$fqgitdir/pid"
+LockFile "$fqgitdir/gitweb/logs/accept.lock"
 Listen $bind$port
 EOF
 
-- 
1.5.5.1.179.g2fe4.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux