On Mon, Aug 08, 2016 at 05:21:35PM +0200, Pino Toscano wrote:
In disk input mode, to determine the guest name strip the extension
from
the filename only if it's a very well extension for disk images.
---
v2v/input_disk.ml | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/v2v/input_disk.ml b/v2v/input_disk.ml
index 17ad61d..d56c476 100644
--- a/v2v/input_disk.ml
+++ b/v2v/input_disk.ml
@@ -42,9 +42,23 @@ class input_disk input_format disk = object
* the filename passed in. Users can override this using the
* `-on name' option.
*)
- let name = Filename.basename disk in
let name =
- try Filename.chop_extension name with Invalid_argument _ -> name in
+ let name = Filename.basename disk in
+ (* Remove the extension (or suffix), only if it's one usually
+ * used for disk images. *)
+ let suffixes = [
+ ".img"; ".qcow2"; ".raw"; ".vmdk";
+ "-sda";
+ ] in
+ let rec loop = function
+ | suff :: xs ->
+ if Filename.check_suffix name suff then
+ Filename.chop_suffix name suff
+ else
+ loop xs
+ | [] -> name
+ in
+ loop suffixes in
if name = "" then
error (f_"-i disk: invalid input filename (%s)") disk;
ACK
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/