[Libguestfs] [PATCH 2/2] v2v: use Getopt.Symbol for few options

Richard W.M. Jones rjones at redhat.com
Mon Jul 18 17:35:36 UTC 2016


On Mon, Jul 18, 2016 at 07:29:54PM +0200, Pino Toscano wrote:
> Use Getopt.Symbol for options with a fixed list of choices, so there is
> no need to check them on our own.
> ---
>  v2v/cmdline.ml | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml
> index 2d0a10a..ddf5858 100644
> --- a/v2v/cmdline.ml
> +++ b/v2v/cmdline.ml
> @@ -136,8 +136,7 @@ let parse_cmdline () =
>      match mode with
>      | "sparse" -> output_alloc := `Sparse
>      | "preallocated" -> output_alloc := `Preallocated
> -    | s ->
> -      error (f_"unknown -oa option: %s") s
> +    | s -> assert false (* Already checked by Getopt.Symbol. *)
>    in
>  
>    let root_choice = ref AskRoot in
> @@ -171,7 +170,7 @@ let parse_cmdline () =
>      [ L"dcpath"; L"dcPath" ],  Getopt.String ("path", set_string_option_once "--dcpath" dcpath),
>                                              s_"Override dcPath (for vCenter)";
>      [ L"debug-overlay"; L"debug-overlays" ], Getopt.Set debug_overlays, s_"Save overlay files";
> -    [ S 'i' ],        Getopt.String (i_options, set_input_mode), s_"Set input mode (default: libvirt)";
> +    [ S 'i' ],        Getopt.Symbol (i_options, Modules_list.input_modules (), set_input_mode), s_"Set input mode (default: libvirt)";
>      [ M"ic" ],       Getopt.String ("uri", set_string_option_once "-ic" input_conn),
>                                              s_"Libvirt URI";
>      [ M"if" ],       Getopt.String ("format", set_string_option_once "-if" input_format),
> @@ -182,8 +181,8 @@ let parse_cmdline () =
>      [ L"no-copy" ], Getopt.Clear do_copy,         s_"Just write the metadata";
>      [ L"no-trim" ], Getopt.String ("-", no_trim_warning),
>                                              s_"Ignored for backwards compatibility";
> -    [ S 'o' ],        Getopt.String (o_options, set_output_mode), s_"Set output mode (default: libvirt)";
> -    [ M"oa" ],       Getopt.String ("sparse|preallocated", set_output_alloc),
> +    [ S 'o' ],        Getopt.Symbol (o_options, Modules_list.output_modules (), set_output_mode), s_"Set output mode (default: libvirt)";
> +    [ M"oa" ],       Getopt.Symbol (s_"mode", [ "sparse"; "preallocated" ], set_output_alloc),
>                                              s_"Set output allocation mode";
>      [ M"oc" ],       Getopt.String ("uri", set_string_option_once "-oc" output_conn),
>                                              s_"Libvirt URI";

ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list