#include "lib/bucket.h"
#include "lib/fastbuf.h"
#include "lib/lfs.h"
+#include "lib/conf.h"
#include <stdio.h>
#include <stdlib.h>
help(void)
{
fprintf(stderr, "\
-Usage: buckettool <commands>\n\
+Usage: buckettool <command>\n\
\n\
Commands:\n\
-l\t\tlist all buckets\n\
int errors = 0;
int fatal_errors = 0;
- fd = open(obuck_name, O_RDWR);
+ fd = sh_open(obuck_name, O_RDWR);
if (fd < 0)
die("Unable to open the bucket file %s: %m", obuck_name);
for(;;)
if (fix)
{
printf("*** truncating file\n");
- ftruncate(fd, pos);
+ sh_ftruncate(fd, pos);
}
else
printf("*** would truncate the file here\n");
}
while (nh.magic != OBUCK_MAGIC ||
(nh.oid != (oid_t)(end >> OBUCK_SHIFT) && nh.oid != OBUCK_OID_DELETED));
- printf("*** match at oid %08x\n", end >> OBUCK_SHIFT);
+ printf("*** match at oid %08x\n", (uns)(end >> OBUCK_SHIFT));
if (fix)
{
h.magic = OBUCK_MAGIC;
sh_pwrite(fd, &h, sizeof(h), pos);
chk = OBUCK_TRAILER;
sh_pwrite(fd, &chk, 4, end-4);
- printf("*** replaced the invalid chunk by a DELETED bucket of size %d\n", end - pos);
+ printf("*** replaced the invalid chunk by a DELETED bucket of size %d\n", (uns)(end - pos));
}
pos = end;
}
main(int argc, char **argv)
{
int i, op;
+ char *arg = NULL;
+ log_init(NULL);
op = 0;
- while ((i = getopt(argc, argv, "lLd:x:icfF")) != -1)
- switch (i)
+ while ((i = cf_getopt(argc, argv, CF_SHORT_OPTS "lLd:x:icfF", CF_NO_LONG_OPTS, NULL)) != -1)
+ if (i == '?' || op)
+ help();
+ else
{
- case 'l':
- list(0);
- op++;
- break;
- case 'L':
- list(1);
- op++;
- break;
- case 'd':
- delete(optarg);
- op++;
- break;
- case 'x':
- extract(optarg);
- op++;
- break;
- case 'i':
- insert();
- op++;
- break;
- case 'c':
- cat();
- op++;
- break;
- case 'f':
- fsck(0);
- op++;
- break;
- case 'F':
- fsck(1);
- op++;
- break;
- default:
- help();
+ op = i;
+ arg = optarg;
}
- if (optind < argc || !op)
+ if (optind < argc)
help();
+ switch (op)
+ {
+ case 'l':
+ list(0);
+ break;
+ case 'L':
+ list(1);
+ break;
+ case 'd':
+ delete(arg);
+ break;
+ case 'x':
+ extract(arg);
+ break;
+ case 'i':
+ insert();
+ break;
+ case 'c':
+ cat();
+ break;
+ case 'f':
+ fsck(0);
+ break;
+ case 'F':
+ fsck(1);
+ break;
+ default:
+ help();
+ }
+
return 0;
}