-rw-r--r-- | cgit.h | 2 | ||||
-rw-r--r-- | cgitrc | 7 | ||||
-rw-r--r-- | shared.c | 5 | ||||
-rw-r--r-- | ui-shared.c | 17 |
4 files changed, 31 insertions, 0 deletions
@@ -76,4 +76,5 @@ struct repoinfo { | |||
76 | char *module_link; | 76 | char *module_link; |
77 | char *readme; | 77 | char *readme; |
78 | char *clone_url; | ||
78 | int snapshots; | 79 | int snapshots; |
79 | int enable_log_filecount; | 80 | int enable_log_filecount; |
@@ -141,4 +142,5 @@ extern char *cgit_cache_root; | |||
141 | extern char *cgit_repo_group; | 142 | extern char *cgit_repo_group; |
142 | extern char *cgit_robots; | 143 | extern char *cgit_robots; |
144 | extern char *cgit_clone_prefix; | ||
143 | 145 | ||
144 | extern int cgit_nocache; | 146 | extern int cgit_nocache; |
@@ -117,4 +117,9 @@ | |||
117 | 117 | ||
118 | 118 | ||
119 | ## Shared prefix which, when combined with repo url, becomes the url used | ||
120 | ## to clone the repo | ||
121 | #clone-prefix= | ||
122 | |||
123 | |||
119 | ## Number of chars shown of repo description (in repolist view) | 124 | ## Number of chars shown of repo description (in repolist view) |
120 | #max-repodesc-length=60 | 125 | #max-repodesc-length=60 |
@@ -168,4 +173,5 @@ | |||
168 | #repo.module-link=/git/%s/commit/?id=%s ## override the standard module-link | 173 | #repo.module-link=/git/%s/commit/?id=%s ## override the standard module-link |
169 | #repo.readme=info/web/readme ## specify a file to include on summary page | 174 | #repo.readme=info/web/readme ## specify a file to include on summary page |
175 | #repo.clone-url=git://hjemli.net/pub/git/cgit | ||
170 | 176 | ||
171 | ## Additional repositories grouped under "mirrors" | 177 | ## Additional repositories grouped under "mirrors" |
@@ -174,4 +180,5 @@ | |||
174 | #repo.url=git | 180 | #repo.url=git |
175 | #repo.path=/pub/git/git | 181 | #repo.path=/pub/git/git |
182 | #repo.clone-url=git://hjemli.net/pub/git/git | ||
176 | # | 183 | # |
177 | #repo.url=linux | 184 | #repo.url=linux |
@@ -28,4 +28,5 @@ char *cgit_cache_root = CGIT_CACHE_ROOT; | |||
28 | char *cgit_repo_group = NULL; | 28 | char *cgit_repo_group = NULL; |
29 | char *cgit_robots = "index, nofollow"; | 29 | char *cgit_robots = "index, nofollow"; |
30 | char *cgit_clone_prefix = NULL; | ||
30 | 31 | ||
31 | int cgit_nocache = 0; | 32 | int cgit_nocache = 0; |
@@ -201,4 +202,6 @@ void cgit_global_config_cb(const char *name, const char *value) | |||
201 | else if (!strcmp(name, "robots")) | 202 | else if (!strcmp(name, "robots")) |
202 | cgit_robots = xstrdup(value); | 203 | cgit_robots = xstrdup(value); |
204 | else if (!strcmp(name, "clone-prefix")) | ||
205 | cgit_clone_prefix = xstrdup(value); | ||
203 | else if (!strcmp(name, "repo.group")) | 206 | else if (!strcmp(name, "repo.group")) |
204 | cgit_repo_group = xstrdup(value); | 207 | cgit_repo_group = xstrdup(value); |
@@ -209,4 +212,6 @@ void cgit_global_config_cb(const char *name, const char *value) | |||
209 | else if (cgit_repo && !strcmp(name, "repo.path")) | 212 | else if (cgit_repo && !strcmp(name, "repo.path")) |
210 | cgit_repo->path = trim_end(value, '/'); | 213 | cgit_repo->path = trim_end(value, '/'); |
214 | else if (cgit_repo && !strcmp(name, "repo.clone-url")) | ||
215 | cgit_repo->clone_url = xstrdup(value); | ||
211 | else if (cgit_repo && !strcmp(name, "repo.desc")) | 216 | else if (cgit_repo && !strcmp(name, "repo.desc")) |
212 | cgit_repo->desc = xstrdup(value); | 217 | cgit_repo->desc = xstrdup(value); |
diff --git a/ui-shared.c b/ui-shared.c index 3e13c86..ece041c 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -461,4 +461,5 @@ void cgit_print_pageheader(char *title, int show_search) | |||
461 | static const char *default_info = "This is cgit, a fast webinterface for git repositories"; | 461 | static const char *default_info = "This is cgit, a fast webinterface for git repositories"; |
462 | int header = 0; | 462 | int header = 0; |
463 | char *url; | ||
463 | 464 | ||
464 | html("<table id='layout' summary=''>\n"); | 465 | html("<table id='layout' summary=''>\n"); |
@@ -493,4 +494,20 @@ void cgit_print_pageheader(char *title, int show_search) | |||
493 | for_each_ref(print_archive_ref, &header); | 494 | for_each_ref(print_archive_ref, &header); |
494 | 495 | ||
496 | if (cgit_repo->clone_url || cgit_clone_prefix) { | ||
497 | html("<h1>clone</h1>\n"); | ||
498 | if (cgit_repo->clone_url) | ||
499 | url = cgit_repo->clone_url; | ||
500 | else | ||
501 | url = fmt("%s%s", cgit_clone_prefix, | ||
502 | cgit_repo->url); | ||
503 | html("<a class='menu' href='"); | ||
504 | html_attr(url); | ||
505 | html("' title='"); | ||
506 | html_attr(url); | ||
507 | html("'>\n"); | ||
508 | html_txt(strrpart(url, 20)); | ||
509 | html("</a>\n"); | ||
510 | } | ||
511 | |||
495 | html("<h1>branch</h1>\n"); | 512 | html("<h1>branch</h1>\n"); |
496 | html("<form method='get' action=''>\n"); | 513 | html("<form method='get' action=''>\n"); |