about summary refs log tree commit diff
path: root/cmd.c
diff options
context:
space:
mode:
authorJeff Smith <whydoubt@gmail.com>2017-10-01 23:39:08 -0500
committerJohn Keeping <john@keeping.me.uk>2017-10-03 19:19:34 +0100
commitc1cd290d1f83d3d1c2d081d734e8d213f12cc06b (patch)
treead5027076d139912140c45b6baec2d390389f7a1 /cmd.c
parentui-shared: make a char* parameter const (diff)
downloadcgit-pink-c1cd290d1f83d3d1c2d081d734e8d213f12cc06b.tar.gz
cgit-pink-c1cd290d1f83d3d1c2d081d734e8d213f12cc06b.zip
ui-blame: add blame UI
Implement a page which provides the blame view of a specified file.

This feature is controlled by a new config variable, "enable-blame",
which is disabled by default.

Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Reviewed-by: John Keeping <john@keeping.me.uk>
Diffstat (limited to 'cmd.c')
-rw-r--r--cmd.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmd.c b/cmd.c
index d280e95..63f0ae5 100644
--- a/cmd.c
+++ b/cmd.c
@@ -1,6 +1,6 @@
 /* cmd.c: the cgit command dispatcher
  *
- * Copyright (C) 2006-2014 cgit Development Team <cgit@lists.zx2c4.com>
+ * Copyright (C) 2006-2017 cgit Development Team <cgit@lists.zx2c4.com>
  *
  * Licensed under GNU General Public License v2
  *   (see COPYING for full license text)
@@ -11,6 +11,7 @@
 #include "cache.h"
 #include "ui-shared.h"
 #include "ui-atom.h"
+#include "ui-blame.h"
 #include "ui-blob.h"
 #include "ui-clone.h"
 #include "ui-commit.h"
@@ -63,6 +64,14 @@ static void about_fn(void)
 		cgit_print_site_readme();
 }
 
+static void blame_fn(void)
+{
+	if (ctx.cfg.enable_blame)
+		cgit_print_blame();
+	else
+		cgit_print_error_page(403, "Forbidden", "Blame is disabled");
+}
+
 static void blob_fn(void)
 {
 	cgit_print_blob(ctx.qry.sha1, ctx.qry.path, ctx.qry.head, 0);
@@ -164,6 +173,7 @@ struct cgit_cmd *cgit_get_cmd(void)
 		def_cmd(HEAD, 1, 0, 1),
 		def_cmd(atom, 1, 0, 0),
 		def_cmd(about, 0, 0, 0),
+		def_cmd(blame, 1, 1, 0),
 		def_cmd(blob, 1, 0, 0),
 		def_cmd(commit, 1, 1, 0),
 		def_cmd(diff, 1, 1, 0),