From: Jared Hance <jaredhance@gmail.com>
To: git@vger.kernel.org
Subject: [RFC/PATCH] Split resolve_full_httpd to prevent bug.
Date: Tue, 3 Aug 2010 18:34:36 -0400 [thread overview]
Message-ID: <c14fac3f8bedfe451e7b06b626632e724c993c52.1280874664.git.jaredhance@gmail.com> (raw)
In-Reply-To: <m34ofbpcyr.fsf@localhost.localdomain>
resolve_full_httpd tries to find the httpd path, which can break if the
httpd configuration hasn't happened. Specifically, this occurs with
webrick.
Signed-off-by: Jared Hance <jaredhance@gmail.com>
---
WARNING: I haven't tested this patch, as I don't use git-instaweb. I
also don't have webrick, so I can't be sure this actually works.
Hopefully this can be used as a foundation for a real fix.
git-instaweb.sh | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/git-instaweb.sh b/git-instaweb.sh
index b7342e2..b7950ac 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -41,7 +41,7 @@ test -z "$root" && root='@@GITWEBDIR@@'
# any untaken local port will do...
test -z "$port" && port=1234
-resolve_full_httpd () {
+resolve_httpd () {
case "$httpd" in
*apache2*|*lighttpd*|*httpd*)
# yes, *httpd* covers *lighttpd* above, but it is there for clarity
@@ -52,14 +52,21 @@ resolve_full_httpd () {
fi
;;
*plackup*)
- # server is started by running via generated gitweb.psgi in $fqgitdir/gitweb
- full_httpd="$fqgitdir/gitweb/gitweb.psgi"
httpd_only="${httpd%% *}" # cut on first space
return
;;
esac
httpd_only="$(echo $httpd | cut -f1 -d' ')"
+}
+
+# please run resolve_httpd first
+resolve_full_httpd() {
+ if test $httpd = "plackup"; then
+ # server is started by running via generated gitweb.psgi in $fqgitdir/gitweb
+ full_httpd="$fqgitdir/gitweb/gitweb.psgi"
+ fi
+
if case "$httpd_only" in /*) : ;; *) which $httpd_only >/dev/null 2>&1;; esac
then
full_httpd=$httpd
@@ -90,6 +97,7 @@ start_httpd () {
fi
# here $httpd should have a meaningful value
+ resolve_httpd
resolve_full_httpd
# don't quote $full_httpd, there can be arguments to it (-f)
@@ -354,6 +362,7 @@ PerlPassEnv GITWEB_CONFIG
EOF
else
# plain-old CGI
+ resolve_httpd
resolve_full_httpd
list_mods=$(echo "$full_httpd" | sed 's/-f$/-l/')
$list_mods | sane_grep 'mod_cgi\.c' >/dev/null 2>&1 || \
@@ -565,7 +574,7 @@ EOF
gitweb_conf
-resolve_full_httpd
+resolve_httpd
mkdir -p "$fqgitdir/gitweb/$httpd_only"
case "$httpd" in
@@ -590,6 +599,7 @@ webrick)
;;
esac
+
start_httpd
url=http://127.0.0.1:$port
--
1.7.2
next prev parent reply other threads:[~2010-08-03 22:34 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-03 21:37 git instaweb + webrick does not work Michael Dippery
2010-08-03 22:07 ` Jakub Narebski
2010-08-03 22:34 ` Jared Hance [this message]
2010-08-04 10:25 ` Eric Wong
2010-08-05 9:14 ` [RFC/PATCH 0/3] instaweb: fix and improve WEBrick support Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c14fac3f8bedfe451e7b06b626632e724c993c52.1280874664.git.jaredhance@gmail.com \
--to=jaredhance@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).