summaryrefslogtreecommitdiffabout
path: root/cmd.c
authorNatanael Copa <natanael.copa@gmail.com>2008-11-30 05:49:07 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-11-30 12:39:53 (UTC)
commit314d9ea5a3bc60ec518e314bb0bf8072123dc08f (patch) (unidiff)
treeca65f83e89b301ff6df228785c73c8413a072361 /cmd.c
parent7b5cee65fd9cf31e4f19ce4ff613778cb95512a9 (diff)
downloadcgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.zip
cgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.tar.gz
cgit-314d9ea5a3bc60ec518e314bb0bf8072123dc08f.tar.bz2
Set prefix in snapshots when using dwimmery
This patch sets the directory prefix in archives to be the filename, excluding the suffix (.tar.gz, .tar.bz2 etc). The patch also removes the prefix parameter in cgit_print_snapshot() as the prefix might differ. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cmd.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cmd.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/cmd.c b/cmd.c
index 5b3c14c..8914fa5 100644
--- a/cmd.c
+++ b/cmd.c
@@ -1,165 +1,164 @@
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" 11#include "cache.h"
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-summary.h" 24#include "ui-summary.h"
25#include "ui-tag.h" 25#include "ui-tag.h"
26#include "ui-tree.h" 26#include "ui-tree.h"
27 27
28static void HEAD_fn(struct cgit_context *ctx) 28static void HEAD_fn(struct cgit_context *ctx)
29{ 29{
30 cgit_clone_head(ctx); 30 cgit_clone_head(ctx);
31} 31}
32 32
33static void atom_fn(struct cgit_context *ctx) 33static void atom_fn(struct cgit_context *ctx)
34{ 34{
35 cgit_print_atom(ctx->qry.head, ctx->qry.path, 10); 35 cgit_print_atom(ctx->qry.head, ctx->qry.path, 10);
36} 36}
37 37
38static void about_fn(struct cgit_context *ctx) 38static void about_fn(struct cgit_context *ctx)
39{ 39{
40 if (ctx->repo) 40 if (ctx->repo)
41 cgit_print_repo_readme(); 41 cgit_print_repo_readme();
42 else 42 else
43 cgit_print_site_readme(); 43 cgit_print_site_readme();
44} 44}
45 45
46static void blob_fn(struct cgit_context *ctx) 46static void blob_fn(struct cgit_context *ctx)
47{ 47{
48 cgit_print_blob(ctx->qry.sha1, ctx->qry.path, ctx->qry.head); 48 cgit_print_blob(ctx->qry.sha1, ctx->qry.path, ctx->qry.head);
49} 49}
50 50
51static void commit_fn(struct cgit_context *ctx) 51static void commit_fn(struct cgit_context *ctx)
52{ 52{
53 cgit_print_commit(ctx->qry.sha1); 53 cgit_print_commit(ctx->qry.sha1);
54} 54}
55 55
56static void diff_fn(struct cgit_context *ctx) 56static void diff_fn(struct cgit_context *ctx)
57{ 57{
58 cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path); 58 cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path);
59} 59}
60 60
61static void info_fn(struct cgit_context *ctx) 61static void info_fn(struct cgit_context *ctx)
62{ 62{
63 cgit_clone_info(ctx); 63 cgit_clone_info(ctx);
64} 64}
65 65
66static void log_fn(struct cgit_context *ctx) 66static void log_fn(struct cgit_context *ctx)
67{ 67{
68 cgit_print_log(ctx->qry.sha1, ctx->qry.ofs, ctx->cfg.max_commit_count, 68 cgit_print_log(ctx->qry.sha1, ctx->qry.ofs, ctx->cfg.max_commit_count,
69 ctx->qry.grep, ctx->qry.search, ctx->qry.path, 1); 69 ctx->qry.grep, ctx->qry.search, ctx->qry.path, 1);
70} 70}
71 71
72static void ls_cache_fn(struct cgit_context *ctx) 72static void ls_cache_fn(struct cgit_context *ctx)
73{ 73{
74 ctx->page.mimetype = "text/plain"; 74 ctx->page.mimetype = "text/plain";
75 ctx->page.filename = "ls-cache.txt"; 75 ctx->page.filename = "ls-cache.txt";
76 cgit_print_http_headers(ctx); 76 cgit_print_http_headers(ctx);
77 cache_ls(ctx->cfg.cache_root); 77 cache_ls(ctx->cfg.cache_root);
78} 78}
79 79
80static void objects_fn(struct cgit_context *ctx) 80static void objects_fn(struct cgit_context *ctx)
81{ 81{
82 cgit_clone_objects(ctx); 82 cgit_clone_objects(ctx);
83} 83}
84 84
85static void repolist_fn(struct cgit_context *ctx) 85static void repolist_fn(struct cgit_context *ctx)
86{ 86{
87 cgit_print_repolist(); 87 cgit_print_repolist();
88} 88}
89 89
90static void patch_fn(struct cgit_context *ctx) 90static void patch_fn(struct cgit_context *ctx)
91{ 91{
92 cgit_print_patch(ctx->qry.sha1); 92 cgit_print_patch(ctx->qry.sha1);
93} 93}
94 94
95static void plain_fn(struct cgit_context *ctx) 95static void plain_fn(struct cgit_context *ctx)
96{ 96{
97 cgit_print_plain(ctx); 97 cgit_print_plain(ctx);
98} 98}
99 99
100static void refs_fn(struct cgit_context *ctx) 100static void refs_fn(struct cgit_context *ctx)
101{ 101{
102 cgit_print_refs(); 102 cgit_print_refs();
103} 103}
104 104
105static void snapshot_fn(struct cgit_context *ctx) 105static void snapshot_fn(struct cgit_context *ctx)
106{ 106{
107 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, 107 cgit_print_snapshot(ctx->qry.head, ctx->qry.sha1, ctx->qry.path,
108 cgit_repobasename(ctx->repo->url), ctx->qry.path,
109 ctx->repo->snapshots, ctx->qry.nohead); 108 ctx->repo->snapshots, ctx->qry.nohead);
110} 109}
111 110
112static void summary_fn(struct cgit_context *ctx) 111static void summary_fn(struct cgit_context *ctx)
113{ 112{
114 cgit_print_summary(); 113 cgit_print_summary();
115} 114}
116 115
117static void tag_fn(struct cgit_context *ctx) 116static void tag_fn(struct cgit_context *ctx)
118{ 117{
119 cgit_print_tag(ctx->qry.sha1); 118 cgit_print_tag(ctx->qry.sha1);
120} 119}
121 120
122static void tree_fn(struct cgit_context *ctx) 121static void tree_fn(struct cgit_context *ctx)
123{ 122{
124 cgit_print_tree(ctx->qry.sha1, ctx->qry.path); 123 cgit_print_tree(ctx->qry.sha1, ctx->qry.path);
125} 124}
126 125
127#define def_cmd(name, want_repo, want_layout) \ 126#define def_cmd(name, want_repo, want_layout) \
128 {#name, name##_fn, want_repo, want_layout} 127 {#name, name##_fn, want_repo, want_layout}
129 128
130struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx) 129struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
131{ 130{
132 static struct cgit_cmd cmds[] = { 131 static struct cgit_cmd cmds[] = {
133 def_cmd(HEAD, 1, 0), 132 def_cmd(HEAD, 1, 0),
134 def_cmd(atom, 1, 0), 133 def_cmd(atom, 1, 0),
135 def_cmd(about, 0, 1), 134 def_cmd(about, 0, 1),
136 def_cmd(blob, 1, 0), 135 def_cmd(blob, 1, 0),
137 def_cmd(commit, 1, 1), 136 def_cmd(commit, 1, 1),
138 def_cmd(diff, 1, 1), 137 def_cmd(diff, 1, 1),
139 def_cmd(info, 1, 0), 138 def_cmd(info, 1, 0),
140 def_cmd(log, 1, 1), 139 def_cmd(log, 1, 1),
141 def_cmd(ls_cache, 0, 0), 140 def_cmd(ls_cache, 0, 0),
142 def_cmd(objects, 1, 0), 141 def_cmd(objects, 1, 0),
143 def_cmd(patch, 1, 0), 142 def_cmd(patch, 1, 0),
144 def_cmd(plain, 1, 0), 143 def_cmd(plain, 1, 0),
145 def_cmd(refs, 1, 1), 144 def_cmd(refs, 1, 1),
146 def_cmd(repolist, 0, 0), 145 def_cmd(repolist, 0, 0),
147 def_cmd(snapshot, 1, 0), 146 def_cmd(snapshot, 1, 0),
148 def_cmd(summary, 1, 1), 147 def_cmd(summary, 1, 1),
149 def_cmd(tag, 1, 1), 148 def_cmd(tag, 1, 1),
150 def_cmd(tree, 1, 1), 149 def_cmd(tree, 1, 1),
151 }; 150 };
152 int i; 151 int i;
153 152
154 if (ctx->qry.page == NULL) { 153 if (ctx->qry.page == NULL) {
155 if (ctx->repo) 154 if (ctx->repo)
156 ctx->qry.page = "summary"; 155 ctx->qry.page = "summary";
157 else 156 else
158 ctx->qry.page = "repolist"; 157 ctx->qry.page = "repolist";
159 } 158 }
160 159
161 for(i = 0; i < sizeof(cmds)/sizeof(*cmds); i++) 160 for(i = 0; i < sizeof(cmds)/sizeof(*cmds); i++)
162 if (!strcmp(ctx->qry.page, cmds[i].name)) 161 if (!strcmp(ctx->qry.page, cmds[i].name))
163 return &cmds[i]; 162 return &cmds[i];
164 return NULL; 163 return NULL;
165} 164}