Add repo.hide and repo.ignore
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@cryptocrack.de>
This commit is contained in:
parent
1a2eeb94d4
commit
c58cec9dff
6
cgit.c
6
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");
|
||||
}
|
||||
|
||||
|
2
cgit.h
2
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,
|
||||
|
10
cgitrc.5.txt
10
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.
|
||||
|
3
shared.c
3
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;
|
||||
}
|
||||
|
@ -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++;
|
||||
|
Loading…
Reference in New Issue
Block a user