Skip to content

Commit

Permalink
Enable highlight executable path as a configuration option
Browse files Browse the repository at this point in the history
Allow build-time/run-time configuration of the highlight executable
(must be the one from http://www.andre-simon.de due to assumptions
about parameters and output).  Defaults to previous behavior which
assumes that highlight is available on the server PATH. However, if
this is not the case, the path to the highlight executable can be
configured at build time as a configuration variable

    HIGHLIGHT_BIN = /path/to/highlight

or at runtime by configuring GITWEB_CONFIG

    $highlight_bin = /path/to/highlight

Signed-off-by: Christopher Wilson <cwilson@cdwilson.us>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Christopher Wilson authored and Junio C Hamano committed Sep 27, 2010
1 parent 9027fa9 commit 7ce896b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
4 changes: 3 additions & 1 deletion gitweb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ GITWEB_FAVICON = static/git-favicon.png
GITWEB_JS = static/gitweb.js
GITWEB_SITE_HEADER =
GITWEB_SITE_FOOTER =
HIGHLIGHT_BIN = highlight

# include user config
-include ../config.mak.autogen
Expand Down Expand Up @@ -129,7 +130,8 @@ GITWEB_REPLACE = \
-e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
-e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
-e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g'
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
-e 's|++HIGHLIGHT_BIN++|$(HIGHLIGHT_BIN)|g'

GITWEB-BUILD-OPTIONS: FORCE
@rm -f $@+
Expand Down
11 changes: 10 additions & 1 deletion gitweb/README
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ You can specify the following configuration variables when building GIT:
when gitweb.cgi is executed, then the file specified in the environment
variable will be loaded instead of the file specified when gitweb.cgi was
created. [Default: /etc/gitweb.conf]
* HIGHLIGHT_BIN
Path to the highlight executable to use (must be the one from
http://www.andre-simon.de due to assumptions about parameters and output).
Useful if highlight is not installed on your webserver's PATH.
[Default: highlight]


Runtime gitweb configuration
Expand Down Expand Up @@ -236,7 +241,11 @@ not include variables usually directly set during build):
If server load exceed this value then return "503 Service Unavailable" error.
Server load is taken to be 0 if gitweb cannot determine its value. Set it to
undefined value to turn it off. The default is 300.

* $highlight_bin
Path to the highlight executable to use (must be the one from
http://www.andre-simon.de due to assumptions about parameters and output).
Useful if highlight is not installed on your webserver's PATH.
[Default: highlight]

Projects list file format
~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
9 changes: 8 additions & 1 deletion gitweb/gitweb.perl
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,12 @@ sub evaluate_uri {
# the gitweb domain.
our $prevent_xss = 0;

# Path to the highlight executable to use (must be the one from
# http://www.andre-simon.de due to assumptions about parameters and output).
# Useful if highlight is not installed on your webserver's PATH.
# [Default: highlight]
our $highlight_bin = "++HIGHLIGHT_BIN++";

# information about snapshot formats that gitweb is capable of serving
our %known_snapshot_formats = (
# name => {
Expand Down Expand Up @@ -3360,7 +3366,8 @@ sub run_highlighter {
close $fd
or die_error(404, "Reading blob failed");
open $fd, quote_command(git_cmd(), "cat-file", "blob", $hash)." | ".
"highlight --xhtml --fragment --syntax $syntax |"
quote_command($highlight_bin).
" --xhtml --fragment --syntax $syntax |"
or die_error(500, "Couldn't open file or run syntax highlighter");
return $fd;
}
Expand Down

0 comments on commit 7ce896b

Please sign in to comment.