4 let input_file : string option ref = ref None
5 let output_file : string option ref = ref None
8 let compose = ref false
9 let parallel = ref false
11 let set_string_option r s = r := Some s
14 "-c", Set count, " write the number of results only";
15 "--count", Set count, " ";
16 "-s", Set stats, " display timing and various statistics";
17 "--stats", Set stats, " ";
18 "-d", String (set_string_option input_file), " specify the input document file [default stdin]";
19 "--doc", String (set_string_option input_file), " ";
20 "-o", String (set_string_option output_file), " specify the output file [default stdout]";
21 "--out", String (set_string_option output_file), " ";
22 "-C", Set compose, " compose queries: each query is applied to the results of the previous one [default run all queries
24 "--compose", Set compose, " ";
25 "-p", Set parallel, " run all queries in parallel [default run all queries sequentially]";
26 "--parallel", Set parallel, " ";
29 let usage_msg = Printf.sprintf "usage: %s [options] query [query ... query]" Sys.argv.(0)
31 let usage () = usage specs usage_msg
34 parse specs (fun q -> queries := q :: !queries ) usage_msg;
36 [] -> raise (Arg.Bad "missing query")
37 | l -> queries := List.rev l