diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2006-12-11 16:48:03 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2006-12-11 16:49:18 +0100 | 
| commit | 74620f12e4f7e91cb0a0b4ca731e07272d1b65f6 (patch) | |
| tree | 2e4db980535682c0a606d425b2937126d4b2c09b /ui-repolist.c | |
| parent | Move common output-functions into ui-shared.c (diff) | |
| download | cgit-74620f12e4f7e91cb0a0b4ca731e07272d1b65f6.tar.gz cgit-74620f12e4f7e91cb0a0b4ca731e07272d1b65f6.tar.bz2 cgit-74620f12e4f7e91cb0a0b4ca731e07272d1b65f6.zip | |
Move functions for repolist output into ui-repolist.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to '')
| -rw-r--r-- | ui-repolist.c | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/ui-repolist.c b/ui-repolist.c new file mode 100644 index 0000000..1fe7059 --- /dev/null +++ b/ui-repolist.c @@ -0,0 +1,60 @@ +/* ui-repolist.c: functions for generating the repolist page + * + * Copyright (C) 2006 Lars Hjemli + * + * Licensed under GNU General Public License v2 + *   (see COPYING for full license text) + */ + +#include "cgit.h" + +void cgit_print_repolist(struct cacheitem *item) +{ +	DIR *d; +	struct dirent *de; +	struct stat st; +	char *name; + +	chdir(cgit_root); +	cgit_print_docstart(cgit_root_title, item); +	cgit_print_pageheader(cgit_root_title); + +	if (!(d = opendir("."))) { +		cgit_print_error(fmt("Unable to scan repository directory: %s", +				     strerror(errno))); +		cgit_print_docend(); +		return; +	} + +	html("<h2>Repositories</h2>\n"); +	html("<table class='list'>"); +	html("<tr><th>Name</th><th>Description</th><th>Owner</th></tr>\n"); +	while ((de = readdir(d)) != NULL) { +		if (de->d_name[0] == '.') +			continue; +		if (stat(de->d_name, &st) < 0) +			continue; +		if (!S_ISDIR(st.st_mode)) +			continue; + +		cgit_repo_name = cgit_repo_desc = cgit_repo_owner = NULL; +		name = fmt("%s/info/cgit", de->d_name); +		if (cgit_read_config(name, cgit_repo_config_cb)) +			continue; + +		html("<tr><td>"); +		html_link_open(cgit_repourl(de->d_name), NULL, NULL); +		html_txt(cgit_repo_name); +		html_link_close(); +		html("</td><td>"); +		html_txt(cgit_repo_desc); +		html("</td><td>"); +		html_txt(cgit_repo_owner); +		html("</td></tr>\n"); +	} +	closedir(d); +	html("</table>"); +	cgit_print_docend(); +} + + | 
