List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH] Add repo.hide and repo.ignore
@ 2015-01-29 11:52 cgit
  2015-01-29 15:41 ` Jason
  0 siblings, 1 reply; 2+ messages in thread
From: cgit @ 2015-01-29 11:52 UTC (permalink / raw)


These options can be used to hide a repository from the index or
completely ignore a repository, respectively. They are particularly
useful when used in combination with scan-path.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c        |  6 ++++++
 cgit.h        |  2 ++
 cgitrc.5.txt  | 10 ++++++++++
 shared.c      |  3 +++
 ui-repolist.c |  2 ++
 5 files changed, 23 insertions(+)

diff --git a/cgit.c b/cgit.c
index 79019c2..431e325 100644
--- a/cgit.c
+++ b/cgit.c
@@ -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");
 }
 
diff --git a/cgit.h b/cgit.h
index 42140ac..16f8092 100644
--- a/cgit.h
+++ b/cgit.h
@@ -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.
diff --git a/shared.c b/shared.c
index 6e91857..ae17d78 100644
--- a/shared.c
+++ b/shared.c
@@ -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++;
-- 
2.2.2



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] Add repo.hide and repo.ignore
  2015-01-29 11:52 [PATCH] Add repo.hide and repo.ignore cgit
@ 2015-01-29 15:41 ` Jason
  0 siblings, 0 replies; 2+ messages in thread
From: Jason @ 2015-01-29 15:41 UTC (permalink / raw)


Seems perfect to me. Merged.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20150129/9683b2e5/attachment.html>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-29 15:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-29 11:52 [PATCH] Add repo.hide and repo.ignore cgit
2015-01-29 15:41 ` Jason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).