Fix bug in commandline parsing.
authorKim Nguyễn <kn@lri.fr>
Tue, 29 May 2012 05:59:34 +0000 (07:59 +0200)
committerKim Nguyễn <kn@lri.fr>
Tue, 29 May 2012 05:59:34 +0000 (07:59 +0200)
utils/alarm.ml

index 06a4913..0eeb823 100644 (file)
@@ -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
 ;;