diff options
| -rw-r--r-- | cgit.c | 3 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 6 | ||||
| -rw-r--r-- | scan-tree.c | 3 | 
4 files changed, 13 insertions, 0 deletions
| @@ -205,6 +205,8 @@ void config_cb(const char *name, const char *value)  		ctx.cfg.agefile = xstrdup(value);  	else if (!strcmp(name, "renamelimit"))  		ctx.cfg.renamelimit = atoi(value); +	else if (!strcmp(name, "remove-suffix")) +		ctx.cfg.remove_suffix = atoi(value);  	else if (!strcmp(name, "robots"))  		ctx.cfg.robots = xstrdup(value);  	else if (!strcmp(name, "clone-prefix")) @@ -302,6 +304,7 @@ static void prepare_context(struct cgit_context *ctx)  	ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s";  	ctx->cfg.project_list = NULL;  	ctx->cfg.renamelimit = -1; +	ctx->cfg.remove_suffix = 0;  	ctx->cfg.robots = "index, nofollow";  	ctx->cfg.root_title = "Git repository browser";  	ctx->cfg.root_desc = "a fast webinterface for the git dscm"; @@ -202,6 +202,7 @@ struct cgit_config {  	int noplainemail;  	int noheader;  	int renamelimit; +	int remove_suffix;  	int snapshots;  	int summary_branches;  	int summary_log; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index ec004d4..6fb1083 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -229,6 +229,11 @@ project-list::  	should loaded as git repositories. This must be defined prior to  	scan-path. Default value: none. See also: scan-path. +remove-suffix:: +	If set to "1" and scan-path is enabled, if any repositories are found +	with a suffix of ".git", this suffix will be removed for the url and +	name. Default value: "0". See also: scan-path. +  renamelimit::  	Maximum number of files to consider when detecting renames. The value  	 "-1" uses the compiletime value in git (for further info, look at @@ -538,3 +543,4 @@ will generate the following html element:  AUTHOR  ------  Lars Hjemli <hjemli@gmail.com> +Jason A. Donenfeld <Jason@zx2c4.com> diff --git a/scan-tree.c b/scan-tree.c index 9bf9b38..a83a78c 100644 --- a/scan-tree.c +++ b/scan-tree.c @@ -81,6 +81,9 @@ static void add_repo(const char *base, const char *path, repo_config_fn fn)  		p[strlen(p) - 5] = '\0';  	repo = cgit_add_repo(xstrdup(p)); +	if (ctx.cfg.remove_suffix) +		if ((p = strrchr(repo->url, '.')) && !strcmp(p, ".git")) +			*p = '\0';  	repo->name = repo->url;  	repo->path = xstrdup(path);  	p = (pwd && pwd->pw_gecos) ? strchr(pwd->pw_gecos, ',') : NULL; | 
