author | Lars Hjemli <hjemli@gmail.com> | 2007-05-14 22:48:31 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-05-14 22:48:31 (UTC) |
commit | ea2831f1c826d92c0158474c2d07837ec2f9fd6c (patch) (side-by-side diff) | |
tree | e8d6a89bf0f50835f9c86dd642e7906e1d050df7 | |
parent | 6fb7d09fea94b3dd6932469283358cb24f1e7e29 (diff) | |
download | cgit-ea2831f1c826d92c0158474c2d07837ec2f9fd6c.zip cgit-ea2831f1c826d92c0158474c2d07837ec2f9fd6c.tar.gz cgit-ea2831f1c826d92c0158474c2d07837ec2f9fd6c.tar.bz2 |
Don't hardcode urls when SCRIPT_NAME is available
Also, let the makefile define the name of the installed cgi and
use that definition as a default value for cgit_script_name variable.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | shared.c | 2 | ||||
-rw-r--r-- | ui-shared.c | 4 |
5 files changed, 9 insertions, 4 deletions
@@ -4,8 +4,9 @@ prefix = /var/www/htdocs/cgit SHA1_HEADER = <openssl/sha.h> CACHE_ROOT = /var/cache/cgit CGIT_CONFIG = /etc/cgitrc +CGIT_SCRIPT_NAME = cgit.cgi EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \ ui-summary.o ui-log.o ui-view.o ui-tree.o ui-commit.o ui-diff.o \ @@ -20,8 +21,9 @@ endif CFLAGS += -Igit CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' +CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' # # If make is run on a nongit platform, we need to get the git sources as a tarball. @@ -55,9 +57,9 @@ git/libgit.a: # phony targets # install: all clean-cache mkdir -p $(prefix) - install cgit $(prefix)/cgit.cgi + install cgit $(prefix)/$(CGIT_SCRIPT_NAME) install cgit.css $(prefix)/cgit.css install add.png del.png $(prefix)/ clean-cgit: @@ -243,8 +243,10 @@ int main(int argc, const char **argv) cgit_repolist.count = 0; cgit_repolist.repos = NULL; cgit_read_config(CGIT_CONFIG, cgit_global_config_cb); + if (getenv("SCRIPT_NAME")) + cgit_script_name = xstrdup(getenv("SCRIPT_NAME")); if (getenv("QUERY_STRING")) cgit_querystring = xstrdup(getenv("QUERY_STRING")); cgit_parse_args(argc, argv); cgit_parse_query(cgit_querystring, cgit_querystring_cb); @@ -74,8 +74,9 @@ extern char *cgit_css; extern char *cgit_logo; extern char *cgit_logo_link; extern char *cgit_module_link; extern char *cgit_virtual_root; +extern char *cgit_script_name; extern char *cgit_cache_root; extern int cgit_nocache; extern int cgit_snapshots; @@ -16,9 +16,9 @@ char *cgit_css = "/cgit.css"; char *cgit_logo = "/git-logo.png"; char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; char *cgit_virtual_root = NULL; - +char *cgit_script_name = CGIT_SCRIPT_NAME; char *cgit_cache_root = "/var/cache/cgit"; int cgit_nocache = 0; int cgit_snapshots = 0; diff --git a/ui-shared.c b/ui-shared.c index 6f5cf2b..b0cff7d 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -44,9 +44,9 @@ char *cgit_rooturl() { if (cgit_virtual_root) return fmt("%s/", cgit_virtual_root); else - return "./cgit.cgi"; + return cgit_script_name; } char *cgit_repourl(const char *reponame) { @@ -70,9 +70,9 @@ char *cgit_pageurl(const char *reponame, const char *pagename, char *cgit_currurl() { if (!cgit_virtual_root) - return "./cgit.cgi"; + return cgit_script_name; else if (cgit_query_page) return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); else if (cgit_query_repo) return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); |