setenv("GIT_DIR", cgit_repo->path, 1);
if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) {
- cgit_print_snapshot(item, cgit_query_sha1, "zip",
- cgit_repo->url, cgit_query_name);
+ cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1,
+ cgit_repobasename(cgit_repo->url),
+ cgit_query_path,
+ cgit_repo->snapshots );
return;
}
switch(cgit_cmd) {
case CMD_LOG:
cgit_print_log(cgit_query_sha1, cgit_query_ofs,
- cgit_max_commit_count, cgit_query_search,
+ cgit_max_commit_count, cgit_query_grep, cgit_query_search,
cgit_query_path, 1);
break;
case CMD_TREE:
case CMD_COMMIT:
cgit_print_commit(cgit_query_sha1);
break;
+ case CMD_REFS:
+ cgit_print_refs();
+ break;
+ case CMD_TAG:
+ cgit_print_tag(cgit_query_sha1);
+ break;
case CMD_DIFF:
- cgit_print_diff(cgit_query_sha1, cgit_query_sha2);
+ cgit_print_diff(cgit_query_sha1, cgit_query_sha2, cgit_query_path);
break;
default:
cgit_print_error("Invalid request");
int main(int argc, const char **argv)
{
struct cacheitem item;
+ const char *cgit_config_env = getenv("CGIT_CONFIG");
htmlfd = STDOUT_FILENO;
item.st.st_mtime = time(NULL);
cgit_repolist.count = 0;
cgit_repolist.repos = NULL;
- cgit_read_config(CGIT_CONFIG, cgit_global_config_cb);
+ cgit_read_config(cgit_config_env ? cgit_config_env : CGIT_CONFIG,
+ cgit_global_config_cb);
cgit_repo = NULL;
if (getenv("SCRIPT_NAME"))
cgit_script_name = xstrdup(getenv("SCRIPT_NAME"));