int main(int argc, char** argv) { Db* source; couchstore_error_t errcode; time_purge_ctx timepurge = {0, 0}; couchstore_compact_hook hook = NULL; void* hook_ctx = NULL; int argp = 1; couchstore_compact_flags flags = 0; const couch_file_ops* target_io_ops = couchstore_get_default_file_ops(); if(argc < 3) { usage(argv[0]); } while(argv[argp][0] == '-') { if(!strcmp(argv[argp],"--purge-before")) { argp+=2; if(argc + argp < 2) { usage(argv[0]); } hook = time_purge_hook; hook_ctx = &timepurge; timepurge.purge_before_ts = atoi(argv[argp-1]); printf("Purging items before timestamp %"PRIu64"\n", timepurge.purge_before_ts); } if(!strcmp(argv[argp],"--purge-only-upto-seq")) { if(argc - argp < 3) { usage(argv[0]); } argp+=2; timepurge.purge_before_seq = (uint64_t)(atoll(argv[argp-1])); printf("Purging items only up-to seq %"PRIu64"\n", timepurge.purge_before_seq); } if(!strcmp(argv[argp],"--dropdeletes")) { argp++; if(argc + argp < 2) { usage(argv[0]); } flags = COUCHSTORE_COMPACT_FLAG_DROP_DELETES; } } errcode = couchstore_open_db(argv[argp++], COUCHSTORE_OPEN_FLAG_RDONLY, &source); if(errcode) { exit_error(errcode); } errcode = couchstore_compact_db_ex(source, argv[argp], flags, hook, hook_ctx, target_io_ops); if(errcode) { exit_error(errcode); } printf("Compacted %s -> %s\n", argv[argp - 1], argv[argp]); return 0; }
int main(int argc, char** argv) { Db* source; couchstore_error_t errcode; if(argc < 3) { usage(argv[0]); } int argp = 1; couchstore_compact_flags flags = 0; const couch_file_ops* target_io_ops = couchstore_get_default_file_ops(); while((argp < argc) && (argv[argp][0] == '-')) { if(!strcmp(argv[argp],"--dropdeletes")) { argp++; if(argc < (argp + 2)) { usage(argv[0]); } flags |= COUCHSTORE_COMPACT_FLAG_DROP_DELETES; } if(!strcmp(argv[argp],"--evict")) { argp++; if(argc < (argp + 2)) { usage(argv[0]); } flags |= COUCHSTORE_COMPACT_FLAG_EVICT_BODIES; } } errcode = couchstore_open_db(argv[argp++], COUCHSTORE_OPEN_FLAG_RDONLY, &source); if(errcode) { exit_error(errcode); } errcode = couchstore_compact_db_ex(source, argv[argp], flags, target_io_ops); if(errcode) { exit_error(errcode); } printf("Compacted %s -> %s\n", argv[argp - 1], argv[argp]); return 0; }