xref: /plan9/sys/src/cmd/replica/revdump.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <bio.h>
4*9a747e4fSDavid du Colombier #include <disk.h>
5*9a747e4fSDavid du Colombier 
6*9a747e4fSDavid du Colombier static void
enm(char * new,char * old,Dir * d,void *)7*9a747e4fSDavid du Colombier enm(char *new, char *old, Dir *d, void*)
8*9a747e4fSDavid du Colombier {
9*9a747e4fSDavid du Colombier 	print("%s %s%s%s%luo %s %s %s\n",
10*9a747e4fSDavid du Colombier 		new, (d->mode&DMDIR)?"d":"", (d->mode&DMAPPEND)?"a":"",
11*9a747e4fSDavid du Colombier 		(d->mode&DMEXCL)?"l":"", (d->mode&~(DMDIR|DMAPPEND|DMEXCL)),
12*9a747e4fSDavid du Colombier 		d->uid, d->gid, old);
13*9a747e4fSDavid du Colombier }
14*9a747e4fSDavid du Colombier 
15*9a747e4fSDavid du Colombier static void
usage(void)16*9a747e4fSDavid du Colombier usage(void)
17*9a747e4fSDavid du Colombier {
18*9a747e4fSDavid du Colombier 	fprint(2, "usage: protodump [-r root] proto\n");
19*9a747e4fSDavid du Colombier 	exits("usage");
20*9a747e4fSDavid du Colombier }
21*9a747e4fSDavid du Colombier 
22*9a747e4fSDavid du Colombier void
main(int argc,char ** argv)23*9a747e4fSDavid du Colombier main(int argc, char **argv)
24*9a747e4fSDavid du Colombier {
25*9a747e4fSDavid du Colombier 	char *root;
26*9a747e4fSDavid du Colombier 
27*9a747e4fSDavid du Colombier 	root = "/";
28*9a747e4fSDavid du Colombier 	ARGBEGIN{
29*9a747e4fSDavid du Colombier 	case 'r':
30*9a747e4fSDavid du Colombier 		root = EARGF(usage());
31*9a747e4fSDavid du Colombier 		break;
32*9a747e4fSDavid du Colombier 	}ARGEND
33*9a747e4fSDavid du Colombier 
34*9a747e4fSDavid du Colombier 	if(argc != 1)
35*9a747e4fSDavid du Colombier 		usage();
36*9a747e4fSDavid du Colombier 
37*9a747e4fSDavid du Colombier 	if(revrdproto(argv[0], root, enm, nil, nil) < 0)
38*9a747e4fSDavid du Colombier 		sysfatal("rdproto: %r");
39*9a747e4fSDavid du Colombier 	exits(nil);
40*9a747e4fSDavid du Colombier }
41