/* At this point we have, in the handle, a list of all filesystems
* found and data about each one. Now we assemble the list of
* filesystems which are root devices and return that to the user.
+ * Fall through to guestfs__inspect_get_roots to do that.
*/
- size_t count = 0;
- for (i = 0; i < g->nr_fses; ++i)
- if (g->fses[i].is_root)
- count++;
-
- char **ret = calloc (count+1, sizeof (char *));
- if (ret == NULL) {
- perrorf (g, "calloc");
+ char **ret = guestfs__inspect_get_roots (g);
+ if (ret == NULL)
guestfs___free_inspect_info (g);
- return NULL;
- }
-
- count = 0;
- for (i = 0; i < g->nr_fses; ++i) {
- if (g->fses[i].is_root) {
- ret[count] = safe_strdup (g, g->fses[i].device);
- count++;
- }
- }
- ret[count] = NULL;
-
return ret;
}
if (parse_major_minor (g, fs) == -1)
return -1;
}
+ else if (guestfs_exists (g, "/etc/meego-release") > 0) {
+ fs->distro = OS_DISTRO_MEEGO;
+
+ if (parse_release_file (g, fs, "/etc/meego-release") == -1)
+ return -1;
+
+ if (parse_major_minor (g, fs) == -1)
+ return -1;
+ }
skip_release_checks:;
return NULL;
}
+char **
+guestfs__inspect_get_roots (guestfs_h *g)
+{
+ /* NB. Doesn't matter if g->nr_fses == 0. We just return an empty
+ * list in this case.
+ */
+
+ size_t i;
+ size_t count = 0;
+ for (i = 0; i < g->nr_fses; ++i)
+ if (g->fses[i].is_root)
+ count++;
+
+ char **ret = calloc (count+1, sizeof (char *));
+ if (ret == NULL) {
+ perrorf (g, "calloc");
+ return NULL;
+ }
+
+ count = 0;
+ for (i = 0; i < g->nr_fses; ++i) {
+ if (g->fses[i].is_root) {
+ ret[count] = safe_strdup (g, g->fses[i].device);
+ count++;
+ }
+ }
+ ret[count] = NULL;
+
+ return ret;
+}
+
char *
guestfs__inspect_get_type (guestfs_h *g, const char *root)
{
case OS_DISTRO_DEBIAN: ret = safe_strdup (g, "debian"); break;
case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); break;
+ case OS_DISTRO_MEEGO: ret = safe_strdup (g, "meego"); 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;