123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * compact a database file
- */
- #include "all.h"
- Db *db;
- void
- usage(void)
- {
- fprint(2, "usage: replica/compactdb db\n");
- exits("usage");
- }
- void
- main(int argc, char **argv)
- {
- Avlwalk *w;
- Biobuf bout;
- Entry *e;
- quotefmtinstall();
- ARGBEGIN{
- default:
- usage();
- }ARGEND
- if(argc != 1)
- usage();
- Binit(&bout, 1, OWRITE);
- db = opendb(argv[0]);
- w = avlwalk(db->avl);
- while(e = (Entry*)avlnext(w))
- Bprint(&bout, "%q %q %luo %q %q %lud %lld\n",
- e->name, strcmp(e->name, e->d.name)==0 ? "-" : e->d.name, e->d.mode,
- e->d.uid, e->d.gid, e->d.mtime, e->d.length);
- if(Bterm(&bout) < 0)
- sysfatal("writing output: %r");
- exits(nil);
- }
|