author | Lars Hjemli <hjemli@gmail.com> | 2007-05-08 22:48:09 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-05-08 22:48:09 (UTC) |
commit | ca8eb8fc8f71ee0a40015c323619f776840b6503 (patch) (unidiff) | |
tree | f74a114ba19c215bffe8362bf8e63495155ebef4 /cgit.c | |
parent | 7250a154678477a1e8260efbc9810ec389754ef9 (diff) | |
download | cgit-ca8eb8fc8f71ee0a40015c323619f776840b6503.zip cgit-ca8eb8fc8f71ee0a40015c323619f776840b6503.tar.gz cgit-ca8eb8fc8f71ee0a40015c323619f776840b6503.tar.bz2 |
Add support for downloading single blobs
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -66,37 +66,42 @@ static void cgit_print_repo_page(struct cacheitem *item) | |||
66 | int show_search; | 66 | int show_search; |
67 | 67 | ||
68 | if (chdir(cgit_repo->path)) { | 68 | if (chdir(cgit_repo->path)) { |
69 | title = fmt("%s - %s", cgit_root_title, "Bad request"); | 69 | title = fmt("%s - %s", cgit_root_title, "Bad request"); |
70 | cgit_print_docstart(title, item); | 70 | cgit_print_docstart(title, item); |
71 | cgit_print_pageheader(title, 0); | 71 | cgit_print_pageheader(title, 0); |
72 | cgit_print_error(fmt("Unable to scan repository: %s", | 72 | cgit_print_error(fmt("Unable to scan repository: %s", |
73 | strerror(errno))); | 73 | strerror(errno))); |
74 | cgit_print_docend(); | 74 | cgit_print_docend(); |
75 | return; | 75 | return; |
76 | } | 76 | } |
77 | 77 | ||
78 | title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc); | 78 | title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc); |
79 | show_search = 0; | 79 | show_search = 0; |
80 | setenv("GIT_DIR", cgit_repo->path, 1); | 80 | setenv("GIT_DIR", cgit_repo->path, 1); |
81 | 81 | ||
82 | if (cgit_repo->snapshots && cgit_query_page && | 82 | if (cgit_query_page) { |
83 | !strcmp(cgit_query_page, "snapshot")) { | 83 | if (cgit_repo->snapshots && !strcmp(cgit_query_page, "snapshot")) { |
84 | cgit_print_snapshot(item, cgit_query_sha1, "zip", | 84 | cgit_print_snapshot(item, cgit_query_sha1, "zip", |
85 | cgit_repo->url, cgit_query_name); | 85 | cgit_repo->url, cgit_query_name); |
86 | return; | 86 | return; |
87 | } | ||
88 | if (!strcmp(cgit_query_page, "blob")) { | ||
89 | cgit_print_blob(item, cgit_query_sha1, cgit_query_path); | ||
90 | return; | ||
91 | } | ||
87 | } | 92 | } |
88 | 93 | ||
89 | if (cgit_query_page && !strcmp(cgit_query_page, "log")) | 94 | if (cgit_query_page && !strcmp(cgit_query_page, "log")) |
90 | show_search = 1; | 95 | show_search = 1; |
91 | 96 | ||
92 | cgit_print_docstart(title, item); | 97 | cgit_print_docstart(title, item); |
93 | 98 | ||
94 | 99 | ||
95 | if (!cgit_query_page) { | 100 | if (!cgit_query_page) { |
96 | cgit_print_pageheader("summary", show_search); | 101 | cgit_print_pageheader("summary", show_search); |
97 | cgit_print_summary(); | 102 | cgit_print_summary(); |
98 | cgit_print_docend(); | 103 | cgit_print_docend(); |
99 | return; | 104 | return; |
100 | } | 105 | } |
101 | 106 | ||
102 | cgit_print_pageheader(cgit_query_page, show_search); | 107 | cgit_print_pageheader(cgit_query_page, show_search); |