ref: 834a4a1040b80e89b2a2b06fe5de199635824f0c
dir: /sys/src/cmd/replica/revdump.c/
#include <u.h>
#include <libc.h>
#include <bio.h>
#include <disk.h>
static void
enm(char *new, char *old, Dir *d, void*)
{
	print("%s %s%s%s%luo %s %s %s\n",
		new, (d->mode&DMDIR)?"d":"", (d->mode&DMAPPEND)?"a":"",
		(d->mode&DMEXCL)?"l":"", (d->mode&~(DMDIR|DMAPPEND|DMEXCL)), 
		d->uid, d->gid, old);
}
static void
usage(void)
{
	fprint(2, "usage: protodump [-r root] proto\n");
	exits("usage");
}
void
main(int argc, char **argv)
{
	char *root;
	root = "/";
	ARGBEGIN{
	case 'r':
		root = EARGF(usage());
		break;
	}ARGEND
	if(argc != 1)
		usage();
	if(revrdproto(argv[0], root, enm, nil, nil) < 0)
		sysfatal("rdproto: %r");
	exits(nil);
}