summaryrefslogtreecommitdiffabout
path: root/cmd.c
authorLars Hjemli <hjemli@gmail.com>2008-04-28 10:10:13 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-04-28 10:10:13 (UTC)
commit9000bbf865cb3578ba5ed3810dc44253cb46ec7f (patch) (unidiff)
treea9917628c40301862d1b1d6f5ecaf803ecc0f714 /cmd.c
parent939d32fda70ea66c9db51687beb3cea6da7b0599 (diff)
downloadcgit-9000bbf865cb3578ba5ed3810dc44253cb46ec7f.zip
cgit-9000bbf865cb3578ba5ed3810dc44253cb46ec7f.tar.gz
cgit-9000bbf865cb3578ba5ed3810dc44253cb46ec7f.tar.bz2
Add page 'ls_cache'
This new page will list all entries found in the current cache, which is useful when reviewing the new cache implementation. There are no links to the new page, but it's reachable by adding 'p=ls_cache' to any cgit url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cmd.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cmd.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/cmd.c b/cmd.c
index e0eacbe..07f4707 100644
--- a/cmd.c
+++ b/cmd.c
@@ -1,112 +1,123 @@
1/* cmd.c: the cgit command dispatcher 1/* cmd.c: the cgit command dispatcher
2 * 2 *
3 * Copyright (C) 2008 Lars Hjemli 3 * Copyright (C) 2008 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10#include "cmd.h" 10#include "cmd.h"
11#include "cache.h"
12#include "ui-shared.h"
11#include "ui-blob.h" 13#include "ui-blob.h"
12#include "ui-commit.h" 14#include "ui-commit.h"
13#include "ui-diff.h" 15#include "ui-diff.h"
14#include "ui-log.h" 16#include "ui-log.h"
15#include "ui-patch.h" 17#include "ui-patch.h"
16#include "ui-refs.h" 18#include "ui-refs.h"
17#include "ui-repolist.h" 19#include "ui-repolist.h"
18#include "ui-snapshot.h" 20#include "ui-snapshot.h"
19#include "ui-summary.h" 21#include "ui-summary.h"
20#include "ui-tag.h" 22#include "ui-tag.h"
21#include "ui-tree.h" 23#include "ui-tree.h"
22 24
23static void blob_fn(struct cgit_context *ctx) 25static void blob_fn(struct cgit_context *ctx)
24{ 26{
25 cgit_print_blob(ctx->qry.sha1, ctx->qry.path); 27 cgit_print_blob(ctx->qry.sha1, ctx->qry.path);
26} 28}
27 29
28static void commit_fn(struct cgit_context *ctx) 30static void commit_fn(struct cgit_context *ctx)
29{ 31{
30 cgit_print_commit(ctx->qry.sha1); 32 cgit_print_commit(ctx->qry.sha1);
31} 33}
32 34
33static void diff_fn(struct cgit_context *ctx) 35static void diff_fn(struct cgit_context *ctx)
34{ 36{
35 cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path); 37 cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path);
36} 38}
37 39
38static void repolist_fn(struct cgit_context *ctx)
39{
40 cgit_print_repolist();
41}
42
43static void log_fn(struct cgit_context *ctx) 40static void log_fn(struct cgit_context *ctx)
44{ 41{
45 cgit_print_log(ctx->qry.sha1, ctx->qry.ofs, ctx->cfg.max_commit_count, 42 cgit_print_log(ctx->qry.sha1, ctx->qry.ofs, ctx->cfg.max_commit_count,
46 ctx->qry.grep, ctx->qry.search, ctx->qry.path, 1); 43 ctx->qry.grep, ctx->qry.search, ctx->qry.path, 1);
47} 44}
48 45
46static void ls_cache_fn(struct cgit_context *ctx)
47{
48 ctx->page.mimetype = "text/plain";
49 ctx->page.filename = "ls-cache.txt";
50 cgit_print_http_headers(ctx);
51 cache_ls(ctx->cfg.cache_root);
52}
53
54static void repolist_fn(struct cgit_context *ctx)
55{
56 cgit_print_repolist();
57}
58
49static void patch_fn(struct cgit_context *ctx) 59static void patch_fn(struct cgit_context *ctx)
50{ 60{
51 cgit_print_patch(ctx->qry.sha1); 61 cgit_print_patch(ctx->qry.sha1);
52} 62}
53 63
54static void refs_fn(struct cgit_context *ctx) 64static void refs_fn(struct cgit_context *ctx)
55{ 65{
56 cgit_print_refs(); 66 cgit_print_refs();
57} 67}
58 68
59static void snapshot_fn(struct cgit_context *ctx) 69static void snapshot_fn(struct cgit_context *ctx)
60{ 70{
61 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, 71 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1,
62 cgit_repobasename(ctx->repo->url), ctx->qry.path, 72 cgit_repobasename(ctx->repo->url), ctx->qry.path,
63 ctx->repo->snapshots); 73 ctx->repo->snapshots);
64} 74}
65 75
66static void summary_fn(struct cgit_context *ctx) 76static void summary_fn(struct cgit_context *ctx)
67{ 77{
68 cgit_print_summary(); 78 cgit_print_summary();
69} 79}
70 80
71static void tag_fn(struct cgit_context *ctx) 81static void tag_fn(struct cgit_context *ctx)
72{ 82{
73 cgit_print_tag(ctx->qry.sha1); 83 cgit_print_tag(ctx->qry.sha1);
74} 84}
75 85
76static void tree_fn(struct cgit_context *ctx) 86static void tree_fn(struct cgit_context *ctx)
77{ 87{
78 cgit_print_tree(ctx->qry.sha1, ctx->qry.path); 88 cgit_print_tree(ctx->qry.sha1, ctx->qry.path);
79} 89}
80 90
81#define def_cmd(name, want_repo, want_layout) \ 91#define def_cmd(name, want_repo, want_layout) \
82 {#name, name##_fn, want_repo, want_layout} 92 {#name, name##_fn, want_repo, want_layout}
83 93
84struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx) 94struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
85{ 95{
86 static struct cgit_cmd cmds[] = { 96 static struct cgit_cmd cmds[] = {
87 def_cmd(blob, 1, 0), 97 def_cmd(blob, 1, 0),
88 def_cmd(commit, 1, 1), 98 def_cmd(commit, 1, 1),
89 def_cmd(diff, 1, 1), 99 def_cmd(diff, 1, 1),
90 def_cmd(log, 1, 1), 100 def_cmd(log, 1, 1),
101 def_cmd(ls_cache, 0, 0),
91 def_cmd(patch, 1, 0), 102 def_cmd(patch, 1, 0),
92 def_cmd(refs, 1, 1), 103 def_cmd(refs, 1, 1),
93 def_cmd(repolist, 0, 0), 104 def_cmd(repolist, 0, 0),
94 def_cmd(snapshot, 1, 0), 105 def_cmd(snapshot, 1, 0),
95 def_cmd(summary, 1, 1), 106 def_cmd(summary, 1, 1),
96 def_cmd(tag, 1, 1), 107 def_cmd(tag, 1, 1),
97 def_cmd(tree, 1, 1), 108 def_cmd(tree, 1, 1),
98 }; 109 };
99 int i; 110 int i;
100 111
101 if (ctx->qry.page == NULL) { 112 if (ctx->qry.page == NULL) {
102 if (ctx->repo) 113 if (ctx->repo)
103 ctx->qry.page = "summary"; 114 ctx->qry.page = "summary";
104 else 115 else
105 ctx->qry.page = "repolist"; 116 ctx->qry.page = "repolist";
106 } 117 }
107 118
108 for(i = 0; i < sizeof(cmds)/sizeof(*cmds); i++) 119 for(i = 0; i < sizeof(cmds)/sizeof(*cmds); i++)
109 if (!strcmp(ctx->qry.page, cmds[i].name)) 120 if (!strcmp(ctx->qry.page, cmds[i].name))
110 return &cmds[i]; 121 return &cmds[i];
111 return NULL; 122 return NULL;
112} 123}