[Pkg-libvirt-commits] [libguestfs] 17/59: sparsify: Refactor command line parsing to pass back a mode.
Hilko Bengen
bengen at moszumanska.debian.org
Thu Mar 20 23:05:34 UTC 2014
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to branch experimental
in repository libguestfs.
commit a665a570a3dd574a90c3d75c70ddb698c46f5a68
Author: Richard W.M. Jones <rjones at redhat.com>
Date: Tue Mar 11 16:00:40 2014 +0000
sparsify: Refactor command line parsing to pass back a mode.
This is just code motion, but sets the ground-work for adding a second
mode (in-place image modification).
---
sparsify/cmdline.ml | 10 +++++++---
sparsify/sparsify.ml | 24 ++++++++++++++++--------
2 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/sparsify/cmdline.ml b/sparsify/cmdline.ml
index d803ab1..b714a9e 100644
--- a/sparsify/cmdline.ml
+++ b/sparsify/cmdline.ml
@@ -26,6 +26,10 @@ open Common_utils
let prog = Filename.basename Sys.executable_name
let error fs = error ~prog fs
+type mode_t =
+ Mode_copying of string * check_t * bool * string option * string option
+and check_t = [`Ignore|`Continue|`Warn|`Fail]
+
let parse_cmdline () =
let display_version () =
printf "virt-sparsify %s\n" Config.package_version;
@@ -155,6 +159,6 @@ read the man page virt-sparsify(1).
error (f_"output '%s' cannot be a character device, it must be a regular file")
outdisk;
- indisk, outdisk, check_tmpdir, compress, convert,
- debug_gc, format, ignores, machine_readable,
- option, quiet, verbose, trace, zeroes
+ indisk, debug_gc, format, ignores, machine_readable,
+ quiet, verbose, trace, zeroes,
+ Mode_copying (outdisk, check_tmpdir, compress, convert, option)
diff --git a/sparsify/sparsify.ml b/sparsify/sparsify.ml
index c9692d4..0091d95 100644
--- a/sparsify/sparsify.ml
+++ b/sparsify/sparsify.ml
@@ -31,12 +31,23 @@ external statvfs_free_space : string -> int64 =
let () = Random.self_init ()
-let main () =
- let indisk, outdisk, check_tmpdir, compress, convert, debug_gc,
- format, ignores, machine_readable,
- option, quiet, verbose, trace, zeroes =
+let rec main () =
+ let indisk, debug_gc, format, ignores, machine_readable,
+ quiet, verbose, trace, zeroes, mode =
parse_cmdline () in
+ (match mode with
+ | Mode_copying (outdisk, check_tmpdir, compress, convert, option) ->
+ copying indisk outdisk check_tmpdir compress convert
+ format ignores machine_readable option quiet verbose trace zeroes
+ );
+
+ if debug_gc then
+ Gc.compact ()
+
+and copying indisk outdisk check_tmpdir compress convert
+ format ignores machine_readable option quiet verbose trace zeroes =
+
(* Once we have got past argument parsing and start to create
* temporary files (including the potentially massive overlay file), we
* need to catch SIGINT (^C) and exit cleanly so the temporary file
@@ -274,10 +285,7 @@ You can ignore this warning or change it to a hard failure using the
if not quiet then (
print_newline ();
wrap (s_"Sparsify operation completed with no errors. Before deleting the old disk, carefully check that the target disk boots and works correctly.\n");
- );
-
- if debug_gc then
- Gc.compact ()
+ )
let () =
try main ()
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git
More information about the Pkg-libvirt-commits
mailing list