summaryrefslogtreecommitdiff
path: root/ui-snapshot.c
blob: 2257d6b9e574171c185e76a5fc21b7aeb7826882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* ui-snapshot.c: generate snapshot of a commit
 *
 * Copyright (C) 2006 Lars Hjemli
 *
 * Licensed under GNU General Public License v2
 *   (see COPYING for full license text)
 */

#include "cgit.h"

static void cgit_print_zip(struct cacheitem *item, const char *hex, 
			   const char *prefix, const char *filename)
{
	struct archiver_args args;
	struct commit *commit;
	unsigned char sha1[20];

	if (get_sha1(hex, sha1)) {
		cgit_print_error(fmt("Bad object id: %s", hex));
		return;
	}
	commit = lookup_commit_reference(sha1);

	if (!commit) {
		cgit_print_error(fmt("Not a commit reference: %s", hex));
		return;
	}

	memset(&args, 0, sizeof(args));
	args.base = fmt("%s/", prefix);
	args.tree = commit->tree;
	
	cgit_print_snapshot_start("application/x-zip", filename, item);
	write_zip_archive(&args);
}


void cgit_print_snapshot(struct cacheitem *item, const char *hex, 
			 const char *format, const char *prefix,
			 const char *filename)
{
	if (!strcmp(format, "zip"))
		cgit_print_zip(item, hex, prefix, filename);
	else
		cgit_print_error(fmt("Unsupported snapshot format: %s", 
				     format));
}
/gentoo/overlay.git/commit/x11-libs/cairo/cairo-1.10.2-r2.ebuild?id=14bda47475d3b0d2171f5f740525ca7d1d7b3e5b&follow=1'>add epatch_user to cairoRené Neumann2-1/+2 2012-05-07Cairo from portage treeRené Neumann6-309/+63 2012-02-18Removed outdated packagesRené 'Necoro' Neumann19-883/+0 2012-02-17MltonRené Neumann2-0/+62 2012-02-17Removed virtualboxRené Neumann21-993/+0 2012-01-30BumpRené 'Necoro' Neumann1-3/+3 2012-01-30BumpRené 'Necoro' Neumann1-0/+0 2012-01-30Apply changes from bugs.gentoo.orgRené 'Necoro' Neumann2-1/+19 2012-01-11diffarrayRené Neumann3-0/+37 2012-01-10Remove patched dovecot. Changes are upstreamRené 'Necoro' Neumann8-907/+0 2012-01-10Remove emacs variant -- this is now tracked in patchesRené 'Necoro' Neumann3-363/+0 2011-11-06amd64 for fcgi-cgiRené 'Necoro' Neumann2-2/+2 2011-11-06Forgot dovecot init-fileRené 'Necoro' Neumann1-0/+1