Better error messages when parsing the init file (RHBZ#836231).
[virt-top.git] / virt-top / virt_top.ml
index e2fe554..7e4677c 100644 (file)
@@ -200,7 +200,8 @@ let start_up () =
     "-n", Arg.Set_int iterations,
       "iterations " ^ s_"Number of iterations to run";
     "-o", Arg.String set_sort,
-      "sort " ^ sprintf (f_"Set sort order (%s)") "cpu|mem|time|id|name";
+      "sort " ^ sprintf (f_"Set sort order (%s)")
+        "cpu|mem|time|id|name|netrx|nettx|blockrdrq|blockwrrq";
     "-s", Arg.Set secure_mode,
       " " ^ s_"Secure (\"kiosk\") mode";
     "--script", Arg.Set script_mode,
@@ -225,6 +226,24 @@ OPTIONS" in
   (* Read the init file. *)
   let try_to_read_init_file filename =
     let config = read_config_file filename in
+    (* Replacement functions that raise better errors when
+     * parsing the init file.
+     *)
+    let int_of_string s =
+      try int_of_string s
+      with Invalid_argument _ ->
+        failwithf (f_"%s: could not parse '%s' in init file: expecting an integer")
+          filename s in
+    let float_of_string s =
+      try float_of_string s
+      with Invalid_argument _ ->
+        failwithf (f_"%s: could not parse '%s' in init file: expecting a number")
+          filename s in
+    let bool_of_string s =
+      try bool_of_string s
+      with Invalid_argument _ ->
+        failwithf (f_"%s: could not parse '%s' in init file: expecting %s")
+          filename s "true|false" in
     List.iter (
       function
       | _, "display", mode -> display_mode := display_of_cli mode