X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Finspect.c;h=67eb65f541956d9a35e279dc1b53d16be0ca534b;hp=f04668db23cd13e5d6f79cd23e3788290ec782a8;hb=c46bedf925cd9c6c9a9cbaee115358fd1dffcbfe;hpb=5f26270c343bf543a7bf20cf3e6f182f6282f8ea diff --git a/src/inspect.c b/src/inspect.c index f04668d..67eb65f 100644 --- a/src/inspect.c +++ b/src/inspect.c @@ -29,9 +29,7 @@ #include #include -#ifdef HAVE_PCRE #include -#endif #ifdef HAVE_HIVEX #include @@ -46,7 +44,7 @@ #include "guestfs-internal-actions.h" #include "guestfs_protocol.h" -#if defined(HAVE_PCRE) && defined(HAVE_HIVEX) +#if defined(HAVE_HIVEX) /* The main inspection code. */ char ** @@ -125,6 +123,15 @@ guestfs__inspect_os (guestfs_h *g) return ret; } +static int +compare_strings (const void *vp1, const void *vp2) +{ + const char *s1 = * (char * const *) vp1; + const char *s2 = * (char * const *) vp2; + + return strcmp (s1, s2); +} + char ** guestfs__inspect_get_roots (guestfs_h *g) { @@ -153,6 +160,8 @@ guestfs__inspect_get_roots (guestfs_h *g) } ret[count] = NULL; + qsort (ret, count, sizeof (char *), compare_strings); + return ret; } @@ -165,9 +174,10 @@ guestfs__inspect_get_type (guestfs_h *g, const char *root) char *ret; switch (fs->type) { + case OS_TYPE_FREEBSD: ret = safe_strdup (g, "freebsd"); break; case OS_TYPE_LINUX: ret = safe_strdup (g, "linux"); break; + case OS_TYPE_NETBSD: ret = safe_strdup (g, "netbsd"); break; case OS_TYPE_WINDOWS: ret = safe_strdup (g, "windows"); break; - case OS_TYPE_FREEBSD: ret = safe_strdup (g, "freebsd"); break; case OS_TYPE_UNKNOWN: default: ret = safe_strdup (g, "unknown"); break; } @@ -199,13 +209,16 @@ guestfs__inspect_get_distro (guestfs_h *g, const char *root) case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break; case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); break; case OS_DISTRO_LINUX_MINT: ret = safe_strdup (g, "linuxmint"); break; + case OS_DISTRO_MAGEIA: ret = safe_strdup (g, "mageia"); break; case OS_DISTRO_MANDRIVA: ret = safe_strdup (g, "mandriva"); break; case OS_DISTRO_MEEGO: ret = safe_strdup (g, "meego"); break; + case OS_DISTRO_OPENSUSE: ret = safe_strdup (g, "opensuse"); break; case OS_DISTRO_PARDUS: ret = safe_strdup (g, "pardus"); break; case OS_DISTRO_REDHAT_BASED: ret = safe_strdup (g, "redhat-based"); break; case OS_DISTRO_RHEL: ret = safe_strdup (g, "rhel"); break; case OS_DISTRO_SCIENTIFIC_LINUX: ret = safe_strdup (g, "scientificlinux"); break; case OS_DISTRO_SLACKWARE: ret = safe_strdup (g, "slackware"); break; + case OS_DISTRO_TTYLINUX: ret = safe_strdup (g, "ttylinux"); break; case OS_DISTRO_WINDOWS: ret = safe_strdup (g, "windows"); break; case OS_DISTRO_UBUNTU: ret = safe_strdup (g, "ubuntu"); break; case OS_DISTRO_UNKNOWN: default: ret = safe_strdup (g, "unknown"); break; @@ -455,6 +468,7 @@ guestfs__inspect_get_package_format (guestfs_h *g, const char *root) case OS_PACKAGE_FORMAT_PACMAN: ret = safe_strdup (g, "pacman"); break; case OS_PACKAGE_FORMAT_EBUILD: ret = safe_strdup (g, "ebuild"); break; case OS_PACKAGE_FORMAT_PISI: ret = safe_strdup (g, "pisi"); break; + case OS_PACKAGE_FORMAT_PKGSRC: ret = safe_strdup (g, "pkgsrc"); break; case OS_PACKAGE_FORMAT_UNKNOWN: default: ret = safe_strdup (g, "unknown"); @@ -480,6 +494,7 @@ guestfs__inspect_get_package_management (guestfs_h *g, const char *root) case OS_PACKAGE_MANAGEMENT_PORTAGE: ret = safe_strdup (g, "portage"); break; case OS_PACKAGE_MANAGEMENT_PISI: ret = safe_strdup (g, "pisi"); break; case OS_PACKAGE_MANAGEMENT_URPMI: ret = safe_strdup (g, "urpmi"); break; + case OS_PACKAGE_MANAGEMENT_ZYPPER: ret = safe_strdup (g, "zypper"); break; case OS_PACKAGE_MANAGEMENT_UNKNOWN: default: ret = safe_strdup (g, "unknown"); @@ -591,12 +606,12 @@ guestfs___search_for_root (guestfs_h *g, const char *root) return NULL; } -#else /* no PCRE or hivex at compile time */ +#else /* no hivex at compile time */ /* XXX These functions should be in an optgroup. */ #define NOT_IMPL(r) \ - error (g, _("inspection API not available since this version of libguestfs was compiled without PCRE or hivex libraries")); \ + error (g, _("inspection API not available since this version of libguestfs was compiled without the hivex library")); \ return r char ** @@ -726,7 +741,7 @@ guestfs__inspect_is_multipart (guestfs_h *g, const char *root) NOT_IMPL(-1); } -#endif /* no PCRE or hivex at compile time */ +#endif /* no hivex at compile time */ void guestfs___free_inspect_info (guestfs_h *g)