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