diff options
author | Richard Jones <rjones@redhat.com> | 2010-11-12 12:29:14 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2010-11-12 14:01:38 +0000 |
commit | 3fd2b9d0b6d2bac5e9267fbcf1556f459d7313fe (patch) | |
tree | 07843464b247536e54d23f28b3ebee22fcacbe1d /inspector | |
parent | 6ab57837216f498a08d33240c429ed678968fb78 (diff) | |
download | libguestfs-3fd2b9d0b6d2bac5e9267fbcf1556f459d7313fe.tar.gz libguestfs-3fd2b9d0b6d2bac5e9267fbcf1556f459d7313fe.tar.xz libguestfs-3fd2b9d0b6d2bac5e9267fbcf1556f459d7313fe.zip |
New APIs: inspect-get-package-format, inspect-get-package-management.
This APIs reimplement some parts of virt-inspector in C.
Diffstat (limited to 'inspector')
-rwxr-xr-x | inspector/virt-inspector | 64 |
1 files changed, 15 insertions, 49 deletions
diff --git a/inspector/virt-inspector b/inspector/virt-inspector index 9e12dc84..ce9ac0ea 100755 --- a/inspector/virt-inspector +++ b/inspector/virt-inspector @@ -200,17 +200,17 @@ foreach $root (@roots) { # Basic OS fields. $xml->dataElement (root => canonicalize ($root)); - my ($s, $distro, $major_version); + my $s; $s = $g->inspect_get_type ($root); $xml->dataElement (name => $s) if $s ne "unknown"; $s = $g->inspect_get_arch ($root); $xml->dataElement (arch => $s) if $s ne "unknown"; - $distro = $g->inspect_get_distro ($root); - $xml->dataElement (distro => $distro) if $distro ne "unknown"; + $s = $g->inspect_get_distro ($root); + $xml->dataElement (distro => $s) if $s ne "unknown"; $s = $g->inspect_get_product_name ($root); $xml->dataElement (product_name => $s) if $s ne "unknown"; - $major_version = $g->inspect_get_major_version ($root); - $xml->dataElement (major_version => $major_version); + $s = $g->inspect_get_major_version ($root); + $xml->dataElement (major_version => $s); $s = $g->inspect_get_minor_version ($root); $xml->dataElement (minor_version => $s); @@ -226,7 +226,7 @@ foreach $root (@roots) { output_filesystems ($root); # Package format / management and applications. - output_applications ($root, $distro, $major_version); + output_applications ($root); $xml->endTag("operatingsystem"); @@ -370,58 +370,24 @@ sub output_applications { local $_; my $root = shift; - my $distro = shift; - my $major_version = shift; # Based on the distro, take a guess at the package format # and package management. my ($package_format, $package_management); - if (defined $distro) { - if ($distro eq "archlinux") { - $package_format = "pacman"; - $package_management = "pacman"; - } - elsif ($distro eq "debian" || $distro eq "ubuntu") { - $package_format = "deb"; - $package_management = "apt"; - } - elsif ($distro eq "fedora" || $distro eq "meego") { - $package_format = "rpm"; - $package_management = "yum"; - } - elsif ($distro eq "gentoo") { - $package_format = "ebuild"; - $package_management = "portage"; - } - elsif ($distro eq "pardus") { - $package_format = "pisi"; - $package_management = "pisi"; - } - elsif ($distro =~ /redhat/ || $distro =~ /rhel/) { - if ($major_version >= 5) { - $package_format = "rpm"; - $package_management = "yum"; - } else { - $package_format = "rpm"; - $package_management = "up2date"; - } - } - # else unknown. - } + $package_format = $g->inspect_get_package_format ($root); + $package_management = $g->inspect_get_package_management ($root); $xml->dataElement (package_format => $package_format) - if defined $package_format; + if $package_format ne "unknown"; $xml->dataElement (package_management => $package_management) - if defined $package_management; + if $package_management ne "unknown"; # Do we know how to get a list of applications? - if (defined $package_format) { - if ($package_format eq "rpm") { - output_applications_rpm ($root); - } - elsif ($package_format eq "deb") { - output_applications_deb ($root); - } + if ($package_format eq "rpm") { + output_applications_rpm ($root); + } + elsif ($package_format eq "deb") { + output_applications_deb ($root); } } |