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 Colombierusage(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 Colombierthreadmain(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