Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_tlsv12/sys/src/cmd/fossil/flchk.c – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "stdinc.h"
2
#include <bio.h>
3
#include "dat.h"
4
#include "fns.h"
5
 
6
Biobuf bout;
7
Fsck fsck;
8
 
9
static void
10
usage(void)
11
{
12
	fprint(2, "usage: %s [-c cachesize] [-h host] file\n", argv0);
13
	exits("usage");
14
}
15
 
16
#pragma	varargck	argpos	flprint	1
17
 
18
static int
19
flprint(char *fmt, ...)
20
{
21
	int n;
22
	va_list arg;
23
 
24
	va_start(arg, fmt);
25
	n = Bvprint(&bout, fmt, arg);
26
	va_end(arg);
27
	return n;
28
}
29
 
30
static void
31
flclre(Fsck*, Block *b, int o)
32
{
33
	Bprint(&bout, "# clre 0x%ux %d\n", b->addr, o);
34
}
35
 
36
static void
37
flclrp(Fsck*, Block *b, int o)
38
{
39
	Bprint(&bout, "# clrp 0x%ux %d\n", b->addr, o);
40
}
41
 
42
static void
43
flclri(Fsck*, char *name, MetaBlock*, int, Block*)
44
{
45
	Bprint(&bout, "# clri %s\n", name);
46
}
47
 
48
static void
49
flclose(Fsck*, Block *b, u32int epoch)
50
{
51
	Bprint(&bout, "# bclose 0x%ux %ud\n", b->addr, epoch);
52
}
53
 
54
void
55
main(int argc, char *argv[])
56
{
57
	int csize = 1000;
58
	VtSession *z;
59
	char *host = nil;
60
 
61
	fsck.useventi = 1;
62
	Binit(&bout, 1, OWRITE);
63
	ARGBEGIN{
64
	default:
65
		usage();
66
	case 'c':
67
		csize = atoi(ARGF());
68
		if(csize <= 0)
69
			usage();
70
		break;
71
	case 'f':
72
		fsck.useventi = 0;
73
		break;
74
	case 'h':
75
		host = ARGF();
76
		break;
77
	case 'v':
78
		fsck.printdirs = 1;
79
		break;
80
	}ARGEND;
81
 
82
	if(argc != 1)
83
		usage();
84
 
85
	vtAttach();
86
 
87
	fmtinstall('L', labelFmt);
88
	fmtinstall('V', scoreFmt);
89
	fmtinstall('R', vtErrFmt);
90
 
91
	/*
92
	 * Connect to Venti.
93
	 */
94
	z = vtDial(host, 0);
95
	if(z == nil){
96
		if(fsck.useventi)
97
			vtFatal("could not connect to server: %s", vtGetError());
98
	}else if(!vtConnect(z, 0))
99
		vtFatal("vtConnect: %s", vtGetError());
100
 
101
	/*
102
	 * Initialize file system.
103
	 */
104
	fsck.fs = fsOpen(argv[0], z, csize, OReadOnly);
105
	if(fsck.fs == nil)
106
		vtFatal("could not open file system: %R");
107
 
108
	fsck.print = flprint;
109
	fsck.clre = flclre;
110
	fsck.clrp = flclrp;
111
	fsck.close = flclose;
112
	fsck.clri = flclri;
113
 
114
	fsCheck(&fsck);
115
 
116
	exits(0);
117
}
118