--- osinfo/osinfo_db.c | 35 +++++++++++++++++++++++++++++++++++ tools/osinfo-detect.c | 5 ++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c index 935e299..665554c 100644 --- a/osinfo/osinfo_db.c +++ b/osinfo/osinfo_db.c @@ -391,6 +391,40 @@ static gint media_volume_compare (gconstpointer a, gconstpointer b) return 1; } +static void fill_media (OsinfoMedia *media, OsinfoMedia *matched_media) +{ + gboolean is_installer; + gboolean is_live; + gint reboots; + const gchar *kernel_path; + const gchar *initrd_path; + const gchar *arch; + const gchar *url; + + arch = osinfo_media_get_architecture(matched_media); + if (arch != NULL) + g_object_set(G_OBJECT(media), "architecture", arch, NULL); + url = osinfo_media_get_url(matched_media); + if (url != NULL) + g_object_set(G_OBJECT(media), "url", url, NULL); + + kernel_path = osinfo_media_get_kernel_path(matched_media); + if (kernel_path != NULL) + g_object_set(G_OBJECT(media), "kernel_path", kernel_path, NULL); + + initrd_path = osinfo_media_get_initrd_path(matched_media); + if (initrd_path != NULL) + g_object_set(G_OBJECT(media), "initrd_path", initrd_path, NULL); + is_installer = osinfo_media_get_installer(matched_media); + is_live = osinfo_media_get_live(matched_media); + reboots = osinfo_media_get_installer_reboots(matched_media); + g_object_set(G_OBJECT(media), + "installer", is_installer, + "live", is_live, + "installer-reboots", reboots, + NULL); +} + /** * osinfo_db_guess_os_from_media: * @db: the database @@ -443,6 +477,7 @@ OsinfoOs *osinfo_db_guess_os_from_media(OsinfoDb *db, match_regex (os_system, media_system) && match_regex (os_publisher, media_publisher)) { ret = os; + fill_media(media, os_media); if (matched_media != NULL) *matched_media = os_media; break; diff --git a/tools/osinfo-detect.c b/tools/osinfo-detect.c index 60aabba..944e72d 100644 --- a/tools/osinfo-detect.c +++ b/tools/osinfo-detect.c @@ -227,7 +227,6 @@ gint main(gint argc, gchar **argv) if (type == URL_TYPE_MEDIA) { OsinfoMedia *media = NULL; - OsinfoMedia *matched_media = NULL; media = osinfo_media_create_from_location(argv[1], NULL, &error); if (error != NULL) { if (error->code != OSINFO_MEDIA_ERROR_NOT_BOOTABLE) { @@ -241,8 +240,8 @@ gint main(gint argc, gchar **argv) } else { print_bootable(TRUE); } - os = osinfo_db_guess_os_from_media(db, media, &matched_media); - print_os_media(os, matched_media); + os = osinfo_db_guess_os_from_media(db, media, NULL); + print_os_media(os, media); } else if (type == URL_TYPE_TREE) { OsinfoTree *tree = NULL; OsinfoTree *matched_tree = NULL; -- 1.8.0.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list