about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--cgit.c2
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt17
-rw-r--r--shared.c1
-rwxr-xr-xtests/setup.sh1
-rwxr-xr-xtests/t0102-summary.sh6
-rw-r--r--ui-summary.c2
7 files changed, 26 insertions, 4 deletions
diff --git a/cgit.c b/cgit.c index dd40893..51ca78a 100644 --- a/cgit.c +++ b/cgit.c
@@ -244,6 +244,8 @@ void config_cb(const char *name, const char *value)
244 ctx.cfg.robots = xstrdup(value); 244 ctx.cfg.robots = xstrdup(value);
245 else if (!strcmp(name, "clone-prefix")) 245 else if (!strcmp(name, "clone-prefix"))
246 ctx.cfg.clone_prefix = xstrdup(value); 246 ctx.cfg.clone_prefix = xstrdup(value);
247 else if (!strcmp(name, "clone-url"))
248 ctx.cfg.clone_url = xstrdup(value);
247 else if (!strcmp(name, "local-time")) 249 else if (!strcmp(name, "local-time"))
248 ctx.cfg.local_time = atoi(value); 250 ctx.cfg.local_time = atoi(value);
249 else if (!prefixcmp(name, "mimetype.")) 251 else if (!prefixcmp(name, "mimetype."))
diff --git a/cgit.h b/cgit.h index df7ee5d..bad66f0 100644 --- a/cgit.h +++ b/cgit.h
@@ -165,6 +165,7 @@ struct cgit_config {
165 char *agefile; 165 char *agefile;
166 char *cache_root; 166 char *cache_root;
167 char *clone_prefix; 167 char *clone_prefix;
168 char *clone_url;
168 char *css; 169 char *css;
169 char *favicon; 170 char *favicon;
170 char *footer; 171 char *footer;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 9a9965b..5ba8134 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt
@@ -76,6 +76,11 @@ clone-prefix::
76 setting is only used if `repo.clone-url` is unspecified. Default value: 76 setting is only used if `repo.clone-url` is unspecified. Default value:
77 none. 77 none.
78 78
79clone-url::
80 Space-separated list of clone-url templates. This setting is only
81 used if `repo.clone-url` is unspecified. Default value: none. See
82 also: "MACRO EXPANSION", "FILTER API".
83
79commit-filter:: 84commit-filter::
80 Specifies a command which will be invoked to format commit messages. 85 Specifies a command which will be invoked to format commit messages.
81 The command will get the message on its STDIN, and the STDOUT from the 86 The command will get the message on its STDIN, and the STDOUT from the
@@ -363,7 +368,7 @@ repo.about-filter::
363 368
364repo.clone-url:: 369repo.clone-url::
365 A list of space-separated urls which can be used to clone this repo. 370 A list of space-separated urls which can be used to clone this repo.
366 Default value: none. 371 Default value: none. See also: "MACRO EXPANSION".
367 372
368repo.commit-filter:: 373repo.commit-filter::
369 Override the default commit-filter. Default value: none. See also: 374 Override the default commit-filter. Default value: none. See also:
@@ -511,6 +516,12 @@ can be accomplished by adding the following line to /etc/cgitrc:
511 516
512 include=/etc/cgitrc.d/$HTTP_HOST 517 include=/etc/cgitrc.d/$HTTP_HOST
513 518
519The following options are expanded during request processing, and support
520the environment variables defined in "FILTER API":
521
522- clone-url
523- repo.clone-url
524
514 525
515EXAMPLE CGITRC FILE 526EXAMPLE CGITRC FILE
516------------------- 527-------------------
@@ -520,8 +531,8 @@ EXAMPLE CGITRC FILE
520cache-size=1000 531cache-size=1000
521 532
522 533
523# Specify some default clone prefixes 534# Specify some default clone urls using macro expansion
524clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git 535clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL
525 536
526# Specify the css url 537# Specify the css url
527css=/css/cgit.css 538css=/css/cgit.css
diff --git a/shared.c b/shared.c index 4adeaa8..699c362 100644 --- a/shared.c +++ b/shared.c
@@ -70,6 +70,7 @@ struct cgit_repo *cgit_add_repo(const char *url)
70 ret->about_filter = ctx.cfg.about_filter; 70 ret->about_filter = ctx.cfg.about_filter;
71 ret->commit_filter = ctx.cfg.commit_filter; 71 ret->commit_filter = ctx.cfg.commit_filter;
72 ret->source_filter = ctx.cfg.source_filter; 72 ret->source_filter = ctx.cfg.source_filter;
73 ret->clone_url = ctx.cfg.clone_url;
73 return ret; 74 return ret;
74} 75}
75 76
diff --git a/tests/setup.sh b/tests/setup.sh index b2f1169..1e06107 100755 --- a/tests/setup.sh +++ b/tests/setup.sh
@@ -62,6 +62,7 @@ enable-log-linecount=1
62summary-log=5 62summary-log=5
63summary-branches=5 63summary-branches=5
64summary-tags=5 64summary-tags=5
65clone-url=git://example.org/\$CGIT_REPO_URL.git
65 66
66repo.url=foo 67repo.url=foo
67repo.path=$PWD/trash/repos/foo/.git 68repo.path=$PWD/trash/repos/foo/.git
diff --git a/tests/t0102-summary.sh b/tests/t0102-summary.sh index f0b0d9a..f299c5a 100755 --- a/tests/t0102-summary.sh +++ b/tests/t0102-summary.sh
@@ -9,6 +9,9 @@ run_test 'find commit 1' 'grep -e "commit 1" trash/tmp'
9run_test 'find commit 5' 'grep -e "commit 5" trash/tmp' 9run_test 'find commit 5' 'grep -e "commit 5" trash/tmp'
10run_test 'find branch master' 'grep -e "master" trash/tmp' 10run_test 'find branch master' 'grep -e "master" trash/tmp'
11run_test 'no tags' '! grep -e "tags" trash/tmp' 11run_test 'no tags' '! grep -e "tags" trash/tmp'
12run_test 'clone-url expanded correctly' '
13 grep -e "git://example.org/foo.git" trash/tmp
14'
12 15
13run_test 'generate bar summary' 'cgit_url "bar" >trash/tmp' 16run_test 'generate bar summary' 'cgit_url "bar" >trash/tmp'
14run_test 'no commit 45' '! grep -e "commit 45" trash/tmp' 17run_test 'no commit 45' '! grep -e "commit 45" trash/tmp'
@@ -16,5 +19,8 @@ run_test 'find commit 46' 'grep -e "commit 46" trash/tmp'
16run_test 'find commit 50' 'grep -e "commit 50" trash/tmp' 19run_test 'find commit 50' 'grep -e "commit 50" trash/tmp'
17run_test 'find branch master' 'grep -e "master" trash/tmp' 20run_test 'find branch master' 'grep -e "master" trash/tmp'
18run_test 'no tags' '! grep -e "tags" trash/tmp' 21run_test 'no tags' '! grep -e "tags" trash/tmp'
22run_test 'clone-url expanded correctly' '
23 grep -e "git://example.org/bar.git" trash/tmp
24'
19 25
20tests_done 26tests_done
diff --git a/ui-summary.c b/ui-summary.c index 5be2545..227ed27 100644 --- a/ui-summary.c +++ b/ui-summary.c
@@ -62,7 +62,7 @@ void cgit_print_summary()
62 NULL, NULL, 0, 0); 62 NULL, NULL, 0, 0);
63 } 63 }
64 if (ctx.repo->clone_url) 64 if (ctx.repo->clone_url)
65 print_urls(ctx.repo->clone_url, NULL); 65 print_urls(expand_macros(ctx.repo->clone_url), NULL);
66 else if (ctx.cfg.clone_prefix) 66 else if (ctx.cfg.clone_prefix)
67 print_urls(ctx.cfg.clone_prefix, ctx.repo->url); 67 print_urls(ctx.cfg.clone_prefix, ctx.repo->url);
68 html("</table>"); 68 html("</table>");