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>
This commit is contained in:
Lars Hjemli 2007-05-15 00:48:31 +02:00
parent 6fb7d09fea
commit ea2831f1c8
5 changed files with 9 additions and 4 deletions

View File

@ -5,6 +5,7 @@ prefix = /var/www/htdocs/cgit
SHA1_HEADER = <openssl/sha.h> SHA1_HEADER = <openssl/sha.h>
CACHE_ROOT = /var/cache/cgit CACHE_ROOT = /var/cache/cgit
CGIT_CONFIG = /etc/cgitrc CGIT_CONFIG = /etc/cgitrc
CGIT_SCRIPT_NAME = cgit.cgi
EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto 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 \ OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \
@ -21,6 +22,7 @@ CFLAGS += -Igit
CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
# #
@ -56,7 +58,7 @@ git/libgit.a:
# #
install: all clean-cache install: all clean-cache
mkdir -p $(prefix) mkdir -p $(prefix)
install cgit $(prefix)/cgit.cgi install cgit $(prefix)/$(CGIT_SCRIPT_NAME)
install cgit.css $(prefix)/cgit.css install cgit.css $(prefix)/cgit.css
install add.png del.png $(prefix)/ install add.png del.png $(prefix)/

2
cgit.c
View File

@ -244,6 +244,8 @@ int main(int argc, const char **argv)
cgit_repolist.repos = NULL; cgit_repolist.repos = NULL;
cgit_read_config(CGIT_CONFIG, cgit_global_config_cb); cgit_read_config(CGIT_CONFIG, cgit_global_config_cb);
if (getenv("SCRIPT_NAME"))
cgit_script_name = xstrdup(getenv("SCRIPT_NAME"));
if (getenv("QUERY_STRING")) if (getenv("QUERY_STRING"))
cgit_querystring = xstrdup(getenv("QUERY_STRING")); cgit_querystring = xstrdup(getenv("QUERY_STRING"));
cgit_parse_args(argc, argv); cgit_parse_args(argc, argv);

1
cgit.h
View File

@ -75,6 +75,7 @@ extern char *cgit_logo;
extern char *cgit_logo_link; extern char *cgit_logo_link;
extern char *cgit_module_link; extern char *cgit_module_link;
extern char *cgit_virtual_root; extern char *cgit_virtual_root;
extern char *cgit_script_name;
extern char *cgit_cache_root; extern char *cgit_cache_root;
extern int cgit_nocache; extern int cgit_nocache;

View File

@ -17,7 +17,7 @@ char *cgit_logo = "/git-logo.png";
char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 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_module_link = "./?repo=%s&page=commit&id=%s";
char *cgit_virtual_root = NULL; char *cgit_virtual_root = NULL;
char *cgit_script_name = CGIT_SCRIPT_NAME;
char *cgit_cache_root = "/var/cache/cgit"; char *cgit_cache_root = "/var/cache/cgit";
int cgit_nocache = 0; int cgit_nocache = 0;

View File

@ -45,7 +45,7 @@ char *cgit_rooturl()
if (cgit_virtual_root) if (cgit_virtual_root)
return fmt("%s/", cgit_virtual_root); return fmt("%s/", cgit_virtual_root);
else else
return "./cgit.cgi"; return cgit_script_name;
} }
char *cgit_repourl(const char *reponame) char *cgit_repourl(const char *reponame)
@ -71,7 +71,7 @@ char *cgit_pageurl(const char *reponame, const char *pagename,
char *cgit_currurl() char *cgit_currurl()
{ {
if (!cgit_virtual_root) if (!cgit_virtual_root)
return "./cgit.cgi"; return cgit_script_name;
else if (cgit_query_page) else if (cgit_query_page)
return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page);
else if (cgit_query_repo) else if (cgit_query_repo)