Make snapshot feature configurable
Snapshots can now be enabled/disabled by default for all repositories in cgitrc with param "snapshots". Additionally, any repo can override the default setting with param "repo.snapshots". By default, no snapshotting is enabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
父節點
ab2ab95f09
當前提交
ac70cb4795
3
cgit.c
3
cgit.c
@ -79,7 +79,8 @@ static void cgit_print_repo_page(struct cacheitem *item)
|
||||
show_search = 0;
|
||||
setenv("GIT_DIR", cgit_repo->path, 1);
|
||||
|
||||
if (cgit_query_page && !strcmp(cgit_query_page, "snapshot")) {
|
||||
if (cgit_repo->snapshots && cgit_query_page &&
|
||||
!strcmp(cgit_query_page, "snapshot")) {
|
||||
cgit_print_snapshot(item, cgit_query_sha1, "zip",
|
||||
cgit_repo->url, cgit_query_name);
|
||||
return;
|
||||
|
2
cgit.h
2
cgit.h
@ -21,6 +21,7 @@ struct repoinfo {
|
||||
char *path;
|
||||
char *desc;
|
||||
char *owner;
|
||||
int snapshots;
|
||||
};
|
||||
|
||||
struct repolist {
|
||||
@ -61,6 +62,7 @@ extern char *cgit_virtual_root;
|
||||
extern char *cgit_cache_root;
|
||||
|
||||
extern int cgit_nocache;
|
||||
extern int cgit_snapshots;
|
||||
extern int cgit_max_lock_attempts;
|
||||
extern int cgit_cache_root_ttl;
|
||||
extern int cgit_cache_repo_ttl;
|
||||
|
5
cgitrc
5
cgitrc
@ -8,6 +8,10 @@
|
||||
#nocache=0
|
||||
|
||||
|
||||
## Enable/disable snapshots by default. This can be overridden per repo
|
||||
#snapshots=0
|
||||
|
||||
|
||||
## Specify a root for virtual urls. This makes cgit generate urls like
|
||||
##
|
||||
## http://localhost/git/repo/log/?id=master
|
||||
@ -77,3 +81,4 @@
|
||||
#repo.desc=the caching cgi for git
|
||||
#repo.path=/pub/git/cgit
|
||||
#repo.owner=Lars Hjemli
|
||||
#repo.snapshots=1 # override a sitewide snapshot-setting
|
||||
|
6
shared.c
6
shared.c
@ -20,6 +20,7 @@ char *cgit_virtual_root = NULL;
|
||||
char *cgit_cache_root = "/var/cache/cgit";
|
||||
|
||||
int cgit_nocache = 0;
|
||||
int cgit_snapshots = 0;
|
||||
int cgit_max_lock_attempts = 5;
|
||||
int cgit_cache_root_ttl = 5;
|
||||
int cgit_cache_repo_ttl = 5;
|
||||
@ -83,6 +84,7 @@ struct repoinfo *add_repo(const char *url)
|
||||
ret->path = NULL;
|
||||
ret->desc = NULL;
|
||||
ret->owner = NULL;
|
||||
ret->snapshots = cgit_snapshots;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -100,6 +102,8 @@ void cgit_global_config_cb(const char *name, const char *value)
|
||||
cgit_virtual_root = xstrdup(value);
|
||||
else if (!strcmp(name, "nocache"))
|
||||
cgit_nocache = atoi(value);
|
||||
else if (!strcmp(name, "snapshots"))
|
||||
cgit_snapshots = atoi(value);
|
||||
else if (!strcmp(name, "cache-root"))
|
||||
cgit_cache_root = xstrdup(value);
|
||||
else if (!strcmp(name, "cache-root-ttl"))
|
||||
@ -122,6 +126,8 @@ void cgit_global_config_cb(const char *name, const char *value)
|
||||
cgit_repo->desc = xstrdup(value);
|
||||
else if (cgit_repo && !strcmp(name, "repo.owner"))
|
||||
cgit_repo->owner = xstrdup(value);
|
||||
else if (cgit_repo && !strcmp(name, "repo.snapshots"))
|
||||
cgit_repo->snapshots = atoi(value);
|
||||
}
|
||||
|
||||
void cgit_repo_config_cb(const char *name, const char *value)
|
||||
|
12
ui-commit.c
12
ui-commit.c
@ -169,11 +169,13 @@ void cgit_print_commit(const char *hex)
|
||||
htmlf("'>%s</a></td></tr>\n",
|
||||
sha1_to_hex(p->item->object.sha1));
|
||||
}
|
||||
htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='");
|
||||
filename = fmt("%s-%s.zip", cgit_query_repo, hex);
|
||||
html_attr(cgit_pageurl(cgit_query_repo, "snapshot",
|
||||
fmt("id=%s&name=%s", hex, filename)));
|
||||
htmlf("'>%s</a></td></tr>", filename);
|
||||
if (cgit_repo->snapshots) {
|
||||
htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='");
|
||||
filename = fmt("%s-%s.zip", cgit_query_repo, hex);
|
||||
html_attr(cgit_pageurl(cgit_query_repo, "snapshot",
|
||||
fmt("id=%s&name=%s", hex, filename)));
|
||||
htmlf("'>%s</a></td></tr>", filename);
|
||||
}
|
||||
|
||||
html("</table>\n");
|
||||
html("<div class='commit-subject'>");
|
||||
|
Loading…
Reference in New Issue
Block a user