diff options
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 6 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | cgitrc.5.txt | 10 | ||||
| -rw-r--r-- | shared.c | 3 | ||||
| -rw-r--r-- | ui-repolist.c | 2 | 
5 files changed, 23 insertions, 0 deletions
| @@ -93,6 +93,10 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va  			repo->email_filter = cgit_new_filter(value, EMAIL);  		else if (!strcmp(name, "owner-filter"))  			repo->owner_filter = cgit_new_filter(value, OWNER); +	} else if (!strcmp(name, "hide")) { +		repo->hide = atoi(value); +	} else if (!strcmp(name, "ignore")) { +		repo->ignore = atoi(value);  	}  } @@ -828,6 +832,8 @@ static void print_repo(FILE *f, struct cgit_repo *repo)  		else if (repo->commit_sort == 2)  			fprintf(f, "repo.commit-sort=topo\n");  	} +	fprintf(f, "repo.hide=%d\n", repo->hide); +	fprintf(f, "repo.ignore=%d\n", repo->ignore);  	fprintf(f, "\n");  } @@ -106,6 +106,8 @@ struct cgit_repo {  	struct cgit_filter *email_filter;  	struct cgit_filter *owner_filter;  	struct string_list submodules; +	int hide; +	int ignore;  };  typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name, diff --git a/cgitrc.5.txt b/cgitrc.5.txt index be6703f..e21ece9 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -509,6 +509,16 @@ repo.enable-subject-links::  	A flag which can be used to override the global setting  	`enable-subject-links'. Default value: none. +repo.hide:: +	Flag which, when set to "1", hides the repository from the repository +	index. The repository can still be accessed by providing a direct path. +	Default value: "0". See also: "repo.ignore". + +repo.ignore:: +	Flag which, when set to "1", ignores the repository. The repository +	is not shown in the index and cannot be accessed by providing a direct +	path. Default value: "0". See also: "repo.hide". +  repo.logo::  	Url which specifies the source of an image which will be used as a logo  	on this repo's pages. Default value: global logo. @@ -75,6 +75,7 @@ struct cgit_repo *cgit_add_repo(const char *url)  	ret->owner_filter = ctx.cfg.owner_filter;  	ret->clone_url = ctx.cfg.clone_url;  	ret->submodules.strdup_strings = 1; +	ret->hide = ret->ignore = 0;  	return ret;  } @@ -85,6 +86,8 @@ struct cgit_repo *cgit_get_repoinfo(const char *url)  	for (i = 0; i < cgit_repolist.count; i++) {  		repo = &cgit_repolist.repos[i]; +		if (repo->ignore) +			continue;  		if (!strcmp(repo->url, url))  			return repo;  	} diff --git a/ui-repolist.c b/ui-repolist.c index f929cb7..91911e0 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -275,6 +275,8 @@ void cgit_print_repolist()  	html("<table summary='repository list' class='list nowrap'>");  	for (i = 0; i < cgit_repolist.count; i++) {  		ctx.repo = &cgit_repolist.repos[i]; +		if (ctx.repo->hide || ctx.repo->ignore) +			continue;  		if (!(is_match(ctx.repo) && is_in_url(ctx.repo)))  			continue;  		hits++; | 
