"--list", Arg.Unit (set_mode `List), " List the script";
"--lib", Arg.Set_string libdir, "dir Specify directory that contains pa_when.cmo";
"--set", Arg.Unit (set_mode `Set), " Set the variable";
- "--type", Arg.Set_string typ, "bool|int|float|string Set the variable type";
+ "--type", Arg.Set_string typ, "bool|int|float|string|unit Set the variable type";
"--upload", Arg.Unit (set_mode `Upload), " Upload the script";
"--variables", Arg.Unit (set_mode `Variables), " Display all variables and values";
"-V", Arg.Unit display_version, " Display version number and exit";
| "string" -> `String
| "int" -> `Int
| "float"|"double" -> `Float
+ | "unit" -> `Unit
| t ->
eprintf "whenjobs: --type: unknown type (%s)\n" t;
exit 1 in
with Failure _ ->
eprintf "whenjobs: variable is not a floating point number\n";
exit 1
- ) in
+ )
+ | `Unit ->
+ if value <> "" then (
+ eprintf "whenjobs: unit variables must be empty strings\n";
+ exit 1
+ );
+ `unit_t in
let client = start_client () in
(match Whenproto_clnt.When.V1.set_variable client (name, value) with
Rpc_client.shut_down client
and string_of_variable = function
+ | `unit_t -> ""
| `bool_t b -> string_of_bool b
| `string_t s -> s
| `int_t i -> i (* passed on the wire as a string *)