From: Vincent Hanquez Date: Tue, 18 Aug 2009 17:24:20 +0000 (+0100) Subject: add an option to xenvm to be able to specify to use the socket monitor X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1beb1d85d3db44420014004e657105ceb9a8b60b;p=xenclient%2Ftoolstack.git add an option to xenvm to be able to specify to use the socket monitor --- diff --git a/xenvm/xenvm-cmd.ml b/xenvm/xenvm-cmd.ml index 9d87b04..e097e10 100644 --- a/xenvm/xenvm-cmd.ml +++ b/xenvm/xenvm-cmd.ml @@ -25,21 +25,24 @@ let valid_kvpairs args = List.rev (List.fold_left (fun acc x -> match kvpair x with Some x -> x :: acc | None -> acc) [] args) let _ = - if Array.length Sys.argv < 3 then ( - eprintf "usage: %s [cmd args]\n" Sys.argv.(0); - exit 2 - ); - let uuid = Sys.argv.(1) in + let using_socket = ref false in + let usage_msg = sprintf "usage: %s [--use-socket] [cmd args]\n" Sys.argv.(0) in + let args = ref [] in + Arg.parse [ + ("--use-socket", Arg.Set using_socket, "use socket instead of dbus"); + ] (fun s -> args := s :: !args) usage_msg; + let args = List.rev !args in - let cmds = Array.to_list (Array.sub Sys.argv 2 (Array.length Sys.argv - 2)) in - let query = - match cmds with - | cmd :: args -> cmd, valid_kvpairs args - | [] -> eprintf "error: missing query\n"; exit 1 + let using_socket = !using_socket in + let uuid, query = + match args with + | uuid :: cmd :: args -> uuid, (cmd, valid_kvpairs args) + | uuid :: [] -> eprintf "error: missing query\n%s" usage_msg; exit 1 + | [] -> eprintf "error: missing uuid\n%s" usage_msg; exit 1 in try - match Xenvmlib.request ~timeout:60.0 uuid query with + match Xenvmlib.request ~using_socket ~timeout:60.0 uuid query with | Xenvmlib.Ok -> () | Xenvmlib.Timeout -> eprintf "timeout\n"; exit 1 | Xenvmlib.Error error -> eprintf "error: %s\n" error; exit 1