diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2008-07-27 11:54:06 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2008-07-27 11:54:06 +0200 | 
| commit | 78af25ccac7aab6baccd58e4d65bfe879a25dd54 (patch) | |
| tree | 27eb89bc2b0d44282f41007d0bf292627bb654e1 | |
| parent | 50989d3b471aeecba563cfb1dfbffeeecf6c83cb (diff) | |
ui-summary: show clone urls
If either repo.clone-url or clone-prefix is specified in cgitrc, all
space-separated values in the config option is printed as a possible
clone url on the repo summary page.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | ui-summary.c | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/ui-summary.c b/ui-summary.c index ad0b4a7..29e1544 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -11,6 +11,43 @@  #include "ui-log.h"  #include "ui-refs.h" +int urls = 0; + +static void print_url(char *base, char *suffix) +{ +	if (!base || !*base) +		return; +	if (urls++ == 0) { +		html("<tr class='nohover'><td colspan='4'> </td></tr>"); +		html("<tr><th class='left' colspan='4'>Clone</th></tr>\n"); +	} +	if (suffix && *suffix) +		base = fmt("%s/%s", base, suffix); +	html("<tr><td colspan='4'><a href='"); +	html_attr(base); +	html("'>"); +	html_txt(base); +	html("</a></td></tr>\n"); +} + +static void print_urls(char *txt, char *suffix) +{ +	char *h = txt, *t, c; + +	while (h && *h) { +		while (h && *h == ' ') +			h++; +		t = h; +		while (t && *t && *t != ' ') +			t++; +		c = *t; +		*t = 0; +		print_url(h, suffix); +		*t = c; +		h = t; +	} +} +  void cgit_print_summary()  {  	html("<table summary='repository info' class='list nowrap'>"); @@ -22,6 +59,10 @@ void cgit_print_summary()  		cgit_print_log(ctx.qry.head, 0, ctx.cfg.summary_log, NULL,  			       NULL, NULL, 0);  	} +	if (ctx.repo->clone_url) +		print_urls(ctx.repo->clone_url, NULL); +	else if (ctx.cfg.clone_prefix) +		print_urls(ctx.cfg.clone_prefix, ctx.repo->url);  	html("</table>");  } | 
