Allow relative paths for cgit_cache_root

Make sure we chdir(2) back to the original getcwd(2) when a page
has been generated. Also, if the cgit_cache_root do not exist,
try to create it.

This is a feature intended to ease testing/debugging.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli 2006-12-16 13:55:58 +01:00
parent 61245ad185
commit 7c849d94ec
2 changed files with 8 additions and 0 deletions

View File

@ -45,6 +45,10 @@ int cache_create_dirs()
{ {
char *path; char *path;
path = fmt("%s", cgit_cache_root);
if (mkdir(path, S_IRWXU) && errno!=EEXIST)
return 0;
if (!cgit_query_repo) if (!cgit_query_repo)
return 0; return 0;

4
cgit.c
View File

@ -42,12 +42,16 @@ static void cgit_print_repo_page(struct cacheitem *item)
static void cgit_fill_cache(struct cacheitem *item) static void cgit_fill_cache(struct cacheitem *item)
{ {
static char buf[PATH_MAX];
getcwd(buf, sizeof(buf));
htmlfd = item->fd; htmlfd = item->fd;
item->st.st_mtime = time(NULL); item->st.st_mtime = time(NULL);
if (cgit_query_repo) if (cgit_query_repo)
cgit_print_repo_page(item); cgit_print_repo_page(item);
else else
cgit_print_repolist(item); cgit_print_repolist(item);
chdir(buf);
} }
static void cgit_check_cache(struct cacheitem *item) static void cgit_check_cache(struct cacheitem *item)