about summary refs log tree commit diff
path: root/shared.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2007-05-11 12:12:48 +0200
committerLars Hjemli <hjemli@gmail.com>2007-05-11 12:12:48 +0200
commitded9393b173853d2e960f9b176aeb0bc4ed35be2 (patch)
tree5c062b21e85ef0fe243ad900e9f4ffaf2ded0f62 /shared.c
parentAdd submodules.sh and use it during builds (diff)
downloadcgit-pink-ded9393b173853d2e960f9b176aeb0bc4ed35be2.tar.gz
cgit-pink-ded9393b173853d2e960f9b176aeb0bc4ed35be2.zip
Add submodule links in tree listing
When a submodule occurs in a tree, generate a link to show the
module/commit. The link is specified as a sprintf string in /etc/cgitrc,
using parameters 'module-link' and 'repo.module-link'. This should probably
be extended with repo.module-link.$path.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'shared.c')
-rw-r--r--shared.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/shared.c b/shared.c
index 531d8c0..19d2df0 100644
--- a/shared.c
+++ b/shared.c
@@ -15,6 +15,7 @@ char *cgit_root_title   = "Git repository browser";
 char *cgit_css          = "/cgit.css";
 char *cgit_logo         = "/git-logo.png";
 char *cgit_logo_link    = "http://www.kernel.org/pub/software/scm/git/docs/";
+char *cgit_module_link  = "./?repo=%s&page=commit&id=%s";
 char *cgit_virtual_root = NULL;
 
 char *cgit_cache_root   = "/var/cache/cgit";
@@ -85,6 +86,7 @@ struct repoinfo *add_repo(const char *url)
 	ret->desc = NULL;
 	ret->owner = NULL;
 	ret->snapshots = cgit_snapshots;
+	ret->module_link = cgit_module_link;
 	return ret;
 }
 
@@ -98,6 +100,8 @@ void cgit_global_config_cb(const char *name, const char *value)
 		cgit_logo = xstrdup(value);
 	else if (!strcmp(name, "logo-link"))
 		cgit_logo_link = xstrdup(value);
+	else if (!strcmp(name, "module-link"))
+		cgit_module_link = xstrdup(value);
 	else if (!strcmp(name, "virtual-root"))
 		cgit_virtual_root = xstrdup(value);
 	else if (!strcmp(name, "nocache"))
@@ -128,6 +132,8 @@ void cgit_global_config_cb(const char *name, const char *value)
 		cgit_repo->owner = xstrdup(value);
 	else if (cgit_repo && !strcmp(name, "repo.snapshots"))
 		cgit_repo->snapshots = atoi(value);
+	else if (cgit_repo && !strcmp(name, "repo.module-link"))
+		cgit_repo->module_link= xstrdup(value);
 }
 
 void cgit_repo_config_cb(const char *name, const char *value)