diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2007-02-08 14:47:56 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2007-02-08 14:47:56 +0100 | 
| commit | ac70cb4795c90db02917db63d169b0fadfe9fb99 (patch) | |
| tree | bf7a5c4c8c2789cda2dd511f0a180df279a0b389 | |
| parent | Add support for snapshots (diff) | |
| download | cgit-ac70cb4795c90db02917db63d169b0fadfe9fb99.tar.gz cgit-ac70cb4795c90db02917db63d169b0fadfe9fb99.tar.bz2 cgit-ac70cb4795c90db02917db63d169b0fadfe9fb99.zip | |
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>
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 3 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | cgitrc | 5 | ||||
| -rw-r--r-- | shared.c | 6 | ||||
| -rw-r--r-- | ui-commit.c | 12 | 
5 files changed, 22 insertions, 6 deletions
| @@ -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; @@ -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; @@ -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 @@ -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) diff --git a/ui-commit.c b/ui-commit.c index de3f2cf..3618800 100644 --- a/ui-commit.c +++ b/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'>"); | 
