summaryrefslogtreecommitdiffabout
path: root/cmd.c
authorLars Hjemli <hjemli@gmail.com>2008-12-06 16:38:19 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-12-06 16:38:19 (UTC)
commitf86a23ff537258d36bf8f1876fa7a4bede6673d8 (patch) (unidiff)
tree8328d415416058cdc5b0fd2c6564ddcab5766c7a /cmd.c
parent140012d7a8e51df5a9f9c556696778b86ade4fc9 (diff)
downloadcgit-f86a23ff537258d36bf8f1876fa7a4bede6673d8.zip
cgit-f86a23ff537258d36bf8f1876fa7a4bede6673d8.tar.gz
cgit-f86a23ff537258d36bf8f1876fa7a4bede6673d8.tar.bz2
Add a 'stats' page to each repo
This new page, which is disabled by default, can be used to print some statistics about the number of commits per period in the repository, where period can be either weeks, months, quarters or years. The function can be activated globally by setting 'enable-stats=1' in cgitrc and disabled for individual repos by setting 'repo.enable-stats=0'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cmd.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cmd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/cmd.c b/cmd.c
index 5b3c14c..744bf84 100644
--- a/cmd.c
+++ b/cmd.c
@@ -12,24 +12,25 @@
12#include "ui-shared.h" 12#include "ui-shared.h"
13#include "ui-atom.h" 13#include "ui-atom.h"
14#include "ui-blob.h" 14#include "ui-blob.h"
15#include "ui-clone.h" 15#include "ui-clone.h"
16#include "ui-commit.h" 16#include "ui-commit.h"
17#include "ui-diff.h" 17#include "ui-diff.h"
18#include "ui-log.h" 18#include "ui-log.h"
19#include "ui-patch.h" 19#include "ui-patch.h"
20#include "ui-plain.h" 20#include "ui-plain.h"
21#include "ui-refs.h" 21#include "ui-refs.h"
22#include "ui-repolist.h" 22#include "ui-repolist.h"
23#include "ui-snapshot.h" 23#include "ui-snapshot.h"
24#include "ui-stats.h"
24#include "ui-summary.h" 25#include "ui-summary.h"
25#include "ui-tag.h" 26#include "ui-tag.h"
26#include "ui-tree.h" 27#include "ui-tree.h"
27 28
28static void HEAD_fn(struct cgit_context *ctx) 29static void HEAD_fn(struct cgit_context *ctx)
29{ 30{
30 cgit_clone_head(ctx); 31 cgit_clone_head(ctx);
31} 32}
32 33
33static void atom_fn(struct cgit_context *ctx) 34static void atom_fn(struct cgit_context *ctx)
34{ 35{
35 cgit_print_atom(ctx->qry.head, ctx->qry.path, 10); 36 cgit_print_atom(ctx->qry.head, ctx->qry.path, 10);
@@ -100,24 +101,32 @@ static void plain_fn(struct cgit_context *ctx)
100static void refs_fn(struct cgit_context *ctx) 101static void refs_fn(struct cgit_context *ctx)
101{ 102{
102 cgit_print_refs(); 103 cgit_print_refs();
103} 104}
104 105
105static void snapshot_fn(struct cgit_context *ctx) 106static void snapshot_fn(struct cgit_context *ctx)
106{ 107{
107 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, 108 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1,
108 cgit_repobasename(ctx->repo->url), ctx->qry.path, 109 cgit_repobasename(ctx->repo->url), ctx->qry.path,
109 ctx->repo->snapshots, ctx->qry.nohead); 110 ctx->repo->snapshots, ctx->qry.nohead);
110} 111}
111 112
113static void stats_fn(struct cgit_context *ctx)
114{
115 if (ctx->repo->enable_stats)
116 cgit_show_stats(ctx);
117 else
118 cgit_print_error("Stats disabled for this repo");
119}
120
112static void summary_fn(struct cgit_context *ctx) 121static void summary_fn(struct cgit_context *ctx)
113{ 122{
114 cgit_print_summary(); 123 cgit_print_summary();
115} 124}
116 125
117static void tag_fn(struct cgit_context *ctx) 126static void tag_fn(struct cgit_context *ctx)
118{ 127{
119 cgit_print_tag(ctx->qry.sha1); 128 cgit_print_tag(ctx->qry.sha1);
120} 129}
121 130
122static void tree_fn(struct cgit_context *ctx) 131static void tree_fn(struct cgit_context *ctx)
123{ 132{
@@ -136,24 +145,25 @@ struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
136 def_cmd(blob, 1, 0), 145 def_cmd(blob, 1, 0),
137 def_cmd(commit, 1, 1), 146 def_cmd(commit, 1, 1),
138 def_cmd(diff, 1, 1), 147 def_cmd(diff, 1, 1),
139 def_cmd(info, 1, 0), 148 def_cmd(info, 1, 0),
140 def_cmd(log, 1, 1), 149 def_cmd(log, 1, 1),
141 def_cmd(ls_cache, 0, 0), 150 def_cmd(ls_cache, 0, 0),
142 def_cmd(objects, 1, 0), 151 def_cmd(objects, 1, 0),
143 def_cmd(patch, 1, 0), 152 def_cmd(patch, 1, 0),
144 def_cmd(plain, 1, 0), 153 def_cmd(plain, 1, 0),
145 def_cmd(refs, 1, 1), 154 def_cmd(refs, 1, 1),
146 def_cmd(repolist, 0, 0), 155 def_cmd(repolist, 0, 0),
147 def_cmd(snapshot, 1, 0), 156 def_cmd(snapshot, 1, 0),
157 def_cmd(stats, 1, 1),
148 def_cmd(summary, 1, 1), 158 def_cmd(summary, 1, 1),
149 def_cmd(tag, 1, 1), 159 def_cmd(tag, 1, 1),
150 def_cmd(tree, 1, 1), 160 def_cmd(tree, 1, 1),
151 }; 161 };
152 int i; 162 int i;
153 163
154 if (ctx->qry.page == NULL) { 164 if (ctx->qry.page == NULL) {
155 if (ctx->repo) 165 if (ctx->repo)
156 ctx->qry.page = "summary"; 166 ctx->qry.page = "summary";
157 else 167 else
158 ctx->qry.page = "repolist"; 168 ctx->qry.page = "repolist";
159 } 169 }