diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-26 14:31:21 +0000 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-29 11:22:21 +0000 |
commit | 70834b08a84cfaf063a63cfe357c932ec87c35ad (patch) | |
tree | 25c1ba8d68270eede2a664d2555b6fc261506518 | |
parent | 8cc02c5883819cd8de03aaeeaf5b31c5e0916dc2 (diff) | |
download | libosinfo-70834b08a84cfaf063a63cfe357c932ec87c35ad.tar.gz |
tools: osinfo-detect prints variant
If a particular variant is matched against, osinfo-detect should print
the name of that variant rather than the OS itself.
-rw-r--r-- | tools/osinfo-detect.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/tools/osinfo-detect.c b/tools/osinfo-detect.c index 0f837de..cf737f2 100644 --- a/tools/osinfo-detect.c +++ b/tools/osinfo-detect.c @@ -136,12 +136,40 @@ static void print_media(OsinfoMedia *media) g_print("OSINFO_MEDIA=%s\n", osinfo_entity_get_id(OSINFO_ENTITY(media))); } else { - const gchar *name = osinfo_product_get_name(OSINFO_PRODUCT(os)); + OsinfoOsVariantList *variants; + const gchar *name; + guint num_variants; + + variants = osinfo_media_get_os_variants(media); + num_variants = osinfo_list_get_length(OSINFO_LIST(variants)); + if (num_variants == 1) { + OsinfoEntity *variant; + + variant = osinfo_list_get_nth(OSINFO_LIST(variants), 0); + name = osinfo_os_variant_get_name(OSINFO_OS_VARIANT(variant)); + } else { + name = osinfo_product_get_name(OSINFO_PRODUCT(os)); + } if (osinfo_media_get_installer (media)) g_print(_("Media is an installer for OS '%s'\n"), name); if (osinfo_media_get_live (media)) g_print(_("Media is live media for OS '%s'\n"), name); + + if (num_variants > 1) { + guint i; + + g_print(_("Available OS variants on media:\n")); + for (i = 0; i < num_variants; i++) { + OsinfoEntity *variant; + + variant = osinfo_list_get_nth(OSINFO_LIST(variants), i); + name = osinfo_os_variant_get_name(OSINFO_OS_VARIANT(variant)); + g_print("%s\n", name); + } + } + + g_clear_object(&variants); } g_object_unref(os); } |