xref: /plan9/sys/src/cmd/venti/sync.c (revision 368c31ab13393dea083228fdd1c3445076f83a4b)
1*368c31abSDavid du Colombier #include <u.h>
2*368c31abSDavid du Colombier #include <libc.h>
3*368c31abSDavid du Colombier #include <thread.h>
4*368c31abSDavid du Colombier #include <venti.h>
59a747e4fSDavid du Colombier 
6d9306527SDavid du Colombier char *host;
7*368c31abSDavid du Colombier int donothing;
8d9306527SDavid du Colombier 
99a747e4fSDavid du Colombier void
usage(void)109a747e4fSDavid du Colombier usage(void)
119a747e4fSDavid du Colombier {
12d9306527SDavid du Colombier 	fprint(2, "usage: sync [-h host]\n");
13*368c31abSDavid du Colombier 	threadexitsall("usage");
149a747e4fSDavid du Colombier }
159a747e4fSDavid du Colombier 
16*368c31abSDavid du Colombier void
threadmain(int argc,char * argv[])17*368c31abSDavid du Colombier threadmain(int argc, char *argv[])
189a747e4fSDavid du Colombier {
19*368c31abSDavid du Colombier 	VtConn *z;
20*368c31abSDavid du Colombier 
21*368c31abSDavid du Colombier 	fmtinstall('V', vtscorefmt);
22*368c31abSDavid du Colombier 	fmtinstall('F', vtfcallfmt);
239a747e4fSDavid du Colombier 
249a747e4fSDavid du Colombier 	ARGBEGIN{
25d9306527SDavid du Colombier 	case 'h':
26d9306527SDavid du Colombier 		host = EARGF(usage());
27d9306527SDavid du Colombier 		if(host == nil)
28d9306527SDavid du Colombier 			usage();
299a747e4fSDavid du Colombier 		break;
30*368c31abSDavid du Colombier 	case 'x':
31*368c31abSDavid du Colombier 		donothing = 1;
32*368c31abSDavid du Colombier 		break;
339a747e4fSDavid du Colombier 	default:
349a747e4fSDavid du Colombier 		usage();
359a747e4fSDavid du Colombier 		break;
369a747e4fSDavid du Colombier 	}ARGEND
379a747e4fSDavid du Colombier 
38d9306527SDavid du Colombier 	if(argc != 0)
399a747e4fSDavid du Colombier 		usage();
409a747e4fSDavid du Colombier 
41*368c31abSDavid du Colombier 	z = vtdial(host);
42d9306527SDavid du Colombier 	if(z == nil)
43*368c31abSDavid du Colombier 		sysfatal("could not connect to server: %r");
449a747e4fSDavid du Colombier 
45*368c31abSDavid du Colombier 	if(vtconnect(z) < 0)
46*368c31abSDavid du Colombier 		sysfatal("vtconnect: %r");
47d9306527SDavid du Colombier 
48*368c31abSDavid du Colombier 	if(!donothing)
49*368c31abSDavid du Colombier 	if(vtsync(z) < 0)
50*368c31abSDavid du Colombier 		sysfatal("vtsync: %r");
51d9306527SDavid du Colombier 
52*368c31abSDavid du Colombier 	vthangup(z);
53*368c31abSDavid du Colombier 	threadexitsall(0);
549a747e4fSDavid du Colombier }
55