28 lines
777 B
OCaml
28 lines
777 B
OCaml
let dry_run = ref false
|
|
let bname = ref ""
|
|
|
|
let speclist =
|
|
[ ("--dry-run", Arg.Set dry_run, " do not commit changes (only print)") ]
|
|
|
|
let anonfun i = bname := i
|
|
let usage = "Usage: " ^ Sys.argv.(0) ^ " [OPTION] base"
|
|
|
|
let () =
|
|
Arg.parse speclist anonfun usage;
|
|
let bname =
|
|
match !bname with
|
|
| "" ->
|
|
Arg.usage speclist usage;
|
|
exit 1
|
|
| s -> s
|
|
in
|
|
let dry_run = !dry_run in
|
|
Secure.set_base_dir (Filename.dirname bname);
|
|
Lock.control (Mutil.lock_file bname) true ~onerror:Lock.print_try_again
|
|
@@ fun () ->
|
|
let base = Database.opendb bname in
|
|
let p, f, s = Gwdb_gc.gc ~dry_run base in
|
|
Printf.printf
|
|
"%s:\n\tnb of persons: %d\n\tnb of families: %d\n\tnb of strings: %d\n"
|
|
bname (List.length p) (List.length f) (List.length s)
|