summaryrefslogtreecommitdiffstats
path: root/inspector
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-11-12 12:29:14 +0000
committerRichard W.M. Jones <rjones@redhat.com>2010-11-12 14:01:38 +0000
commit3fd2b9d0b6d2bac5e9267fbcf1556f459d7313fe (patch)
tree07843464b247536e54d23f28b3ebee22fcacbe1d /inspector
parent6ab57837216f498a08d33240c429ed678968fb78 (diff)
downloadlibguestfs-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-xinspector/virt-inspector64
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);
}
}