#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);
}