X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=inspector%2Fvirt-inspector;h=04a0771a2294dae7f42dec04ee8cd9a3fa5b8ad5;hb=6391d1a7cfa10337a75465c72d49df3c9ebc65ca;hp=a7a65146bd4d65d4da8dafc7f50bbdc2274cdc97;hpb=ebfcb7f23df4546977628dc718982730682a68c0;p=libguestfs.git diff --git a/inspector/virt-inspector b/inspector/virt-inspector index a7a6514..04a0771 100755 --- a/inspector/virt-inspector +++ b/inspector/virt-inspector @@ -27,6 +27,7 @@ use Pod::Usage; use Getopt::Long; use Data::Dumper; use XML::Writer; +use String::ShellQuote qw(shell_quote); use Locale::TextDomain 'libguestfs'; # Optional: @@ -298,13 +299,17 @@ if ($output eq "fish" || $output eq "ro-fish") { print "--ro "; } - print "-a $_ " foreach @images; + foreach (@images) { + printf "-a %s ", shell_quote ($_); + } my $mounts = $oses->{$root_dev}->{mounts}; # Have to mount / first. Luckily '/' is early in the ASCII # character set, so this should be OK. foreach (sort keys %$mounts) { - print "-m $mounts->{$_}:$_ " if $_ ne "swap" && $_ ne "none"; + if ($_ ne "swap" && $_ ne "none") { + printf "-m %s ", shell_quote ("$mounts->{$_}:$_"); + } } print "\n" } @@ -316,7 +321,7 @@ elsif ($output eq "perl") { # YAML output elsif ($output eq "yaml") { - die __"virt-inspector: no YAML support\n" + die __"virt-inspector: no YAML support, try installing perl-YAML or libyaml-perl\n" unless exists $INC{"YAML/Any.pm"}; print Dump(%$oses); @@ -838,6 +843,13 @@ sub output_query_kernel_arch =back +=head1 SHELL QUOTING + +Libvirt guest names can contain arbitrary characters, some of which +have meaning to the shell such as C<#> and space. You may need to +quote or escape these characters on the command line. See the shell +manual page L for details. + =head1 SEE ALSO L, @@ -847,9 +859,9 @@ L, L, L. -=head1 AUTHOR +=head1 AUTHORS -Richard W.M. Jones L +Richard W.M. Jones L Matthew Booth L