From ee6e511d28e2b47d2764cf2cf98869c93d94df2a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kim=20Nguy=E1=BB=85n?= Date: Tue, 29 May 2012 07:59:34 +0200 Subject: [PATCH] Fix bug in commandline parsing. --- utils/alarm.ml | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/utils/alarm.ml b/utils/alarm.ml index 06a4913..0eeb823 100644 --- a/utils/alarm.ml +++ b/utils/alarm.ml @@ -29,19 +29,20 @@ module Options = loop 0 (Array.length a) let parse_cmdline () = - let idash = find_dash Sys.argv in - let argv = Array.sub Sys.argv 0 idash in - let cmd = Array.sub Sys.argv (idash+1) (Array.length Sys.argv - idash - 1) in - let () = - try + try + let idash = find_dash Sys.argv in + let argv = Array.sub Sys.argv 0 idash in + let cmd = Array.sub Sys.argv (idash+1) (Array.length Sys.argv - idash - 1) in + let () = Arg.parse_argv argv spec ignore usage_msg - with - Arg.Bad(s) -> Printf.eprintf "%s\n" s; exit 1 - | Arg.Help(s) -> Printf.printf "%s\n" s; exit 0 - | Not_found -> Arg.usage spec usage_msg; exit 1 - in - if Array.length cmd = 0 then (Arg.usage spec usage_msg; exit 1); - cmd + in + if Array.length cmd = 0 then (Arg.usage spec usage_msg; exit 1); + cmd + with + Arg.Bad(s) -> Printf.eprintf "%s\n" s; exit 1 + | Arg.Help(s) -> Printf.printf "%s\n" s; exit 0 + | Not_found -> Arg.usage spec usage_msg; exit 1 + end @@ -92,13 +93,14 @@ let rec monitor pid start finish mem fmt = monitor pid start finish mem fmt end else - let () = - match s with - WEXITED c -> fprintf fmt "Process exited with code %i\n" c - | WSTOPPED s -> fprintf fmt "Process stopped by signal %i\n" s - | WSIGNALED s -> fprintf fmt "Process killed by signal %i\n" s - in - fprintf fmt "Peak memory use: %ikb\n%!" !max_mem + if not !Options.quiet then + let () = + match s with + WEXITED c -> fprintf fmt "Process exited with code %i\n" c + | WSTOPPED s -> fprintf fmt "Process stopped by signal %i\n" s + | WSIGNALED s -> fprintf fmt "Process killed by signal %i\n" s + in + fprintf fmt "Peak memory use: %ikb\n%!" !max_mem ;; -- 2.17.1