From 6f2929c4635c3f2af4a9211981d9edd1f58cce69 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 28 Apr 2009 15:15:56 +0100 Subject: [PATCH] Perl output. --- inspector/virt-inspector.pl | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/inspector/virt-inspector.pl b/inspector/virt-inspector.pl index 982d286..c8c045e 100755 --- a/inspector/virt-inspector.pl +++ b/inspector/virt-inspector.pl @@ -113,6 +113,8 @@ my $output = "text"; =item B<--xml> +=item B<--perl> + =item B<--fish> =item B<--ro-fish> @@ -122,6 +124,9 @@ Select the output format. The default is a readable text report. If you select I<--xml> then you get XML output which can be fed to other programs. +If you select I<--perl> then you get Perl structures output which +can be used directly in another Perl program. + If you select I<--fish> then we print a L command line which will automatically mount up the filesystems on the correct mount points. Try this for example: @@ -139,6 +144,7 @@ GetOptions ("help|?" => \$help, "connect|c=s" => \$uri, "force" => \$force, "xml" => sub { $output = "xml" }, + "perl" => sub { $output = "perl" }, "fish" => sub { $output = "fish" }, "guestfish" => sub { $output = "fish" }, "ro-fish" => sub { $output = "ro-fish" }, @@ -560,7 +566,13 @@ if ($output !~ /.*fish$/) { check_for_applications ($root_dev); check_for_kernels ($root_dev); - umount_all (); + # umount_all in libguestfs is buggy - it doesn't unmount + # filesystems in the correct order. So let's unmount them + # in reverse first before calling umount_all as a last resort. + foreach (sort { $b cmp $a } keys %$mounts) { + eval "\$g->umount ('$_')"; + } + $g->umount_all (); } } @@ -606,8 +618,33 @@ if ($output eq "fish" || $output eq "ro-fish") { print "\n" } +# Perl output. +elsif ($output eq "perl") { + print Dumper(\%oses); +} + +# Plain text output (the default). +elsif ($output eq "text") { + # XXX text output. + + + +} + +# XML output. +elsif ($output eq "xml") { + # XXX XML output. + + + + + + + +} + =head1 SEE ALSO L, -- 1.8.3.1