-open Utils
open Format
-
-let index_empty_texts = ref true
-let sample_factor = ref 64
-let disable_text_collection = ref false
-let tc_threshold = ref 60000
-
-let query = ref ""
-let input_file = ref ""
-let output_file = ref None
-let save_file = ref ""
-let count_only = ref false
-let time = ref false
-let bottom_up = ref false
-let no_jump = ref false
-let no_cache = ref false
-let verbose = ref false
-let text_index_type = ref 0
-let do_perf = ref false
-let twopass = ref false
-let repeat = ref 1
-let docstats = ref false
-let no_wrap_results = ref false
+open Config
let set_index_type = function
| "default" -> text_index_type := 0
List.iter (fun t ->
if t = "" then ()
else
- match String.explode t ':' with
+ match Utils.String.explode t ':' with
[ tr; lvl ] ->
let l = try int_of_string lvl with _ -> raise (Arg.Bad (lvl)) in
if Logger.is_logger tr then Logger.activate tr l
else raise (Arg.Bad (t))
| _ -> raise (Arg.Bad (t))
- ) (String.explode s ',')
+ ) (Utils.String.explode s ',')
let pretty_loggers () =
ignore(flush_str_formatter());
"-doc-stats", Arg.Set(docstats),
" Compute document statistics (performs full traversal)";
-
"-v", Arg.Set(verbose), " verbose mode"; ] @
IFNDEF NTRACE
THEN [
ELSE []
END
+ let real_spec =
+ spec @ [
+ "-", Arg.Unit (fun () -> anon_fun "-"), "";
+ ]
+
let parse_cmdline() =
- let _ = Arg.parse spec anon_fun usage_msg
+ let _ =
+ try
+ Arg.parse_argv Sys.argv real_spec anon_fun usage_msg;
+ if (!pos > 3 || !pos < 2) then raise (Arg.Bad "Invalid number of arguments")
+ with
+ Arg.Bad s | Arg.Help s ->
+ eprintf "%s\n" (Arg.usage_string spec usage_msg);
+ exit 1
in
- if (!pos > 3 || !pos < 2)
- then begin Arg.usage spec usage_msg; exit 1 end;
Logger.set_verbose !verbose