diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-26 14:22:44 +0000 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-29 11:22:21 +0000 |
commit | 8cc02c5883819cd8de03aaeeaf5b31c5e0916dc2 (patch) | |
tree | 5afb5427be3aaa2e8b43e2e377aca9d415328b17 /osinfo/osinfo_db.c | |
parent | f2608b7fc72417c4e3757997052e70af170163e3 (diff) | |
download | libosinfo-8cc02c5883819cd8de03aaeeaf5b31c5e0916dc2.tar.gz |
media: Add variant info API/XML
Add:
* ability to associate media to one or more variants of the OS in the
'media' XML node. For example:
<os id="http://microsoft.com/win/7">
<short-id>win7</short-id>
<name>Microsoft Windows 7</name>
..
<variant id="starter">
<name>Microsoft Windows 7 Starter</name>
</variant>
<variant id="home-basic">
<name>Microsoft Windows 7 Home Basic</name>
</variant>
<variant id="home-premium">
<name>Microsoft Windows 7 Home Premium</name>
</variant>
..
<media installer-reboots="2" arch="x86_64">
<variant id="home-premium"/>
<iso>
..
</iso>
</media>
</os>
* API to query variants of the OS, media is associated with.
Diffstat (limited to 'osinfo/osinfo_db.c')
-rw-r--r-- | osinfo/osinfo_db.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c index f19d9b4..db04033 100644 --- a/osinfo/osinfo_db.c +++ b/osinfo/osinfo_db.c @@ -627,6 +627,7 @@ static void fill_media (OsinfoDb *db, OsinfoMedia *media, const gchar *initrd_path; const gchar *arch; const gchar *url; + GList *variants, *node; languages = match_languages(db, media, matched_media); if (languages != NULL) @@ -642,7 +643,12 @@ static void fill_media (OsinfoDb *db, OsinfoMedia *media, url = osinfo_media_get_url(matched_media); if (url != NULL) g_object_set(G_OBJECT(media), "url", url, NULL); - + variants = osinfo_entity_get_param_value_list(OSINFO_ENTITY(matched_media), + "variant"); + for (node = variants; node != NULL; node = node->next) + osinfo_entity_add_param(OSINFO_ENTITY(media), + "variant", + (gchar *) node->data); kernel_path = osinfo_media_get_kernel_path(matched_media); if (kernel_path != NULL) g_object_set(G_OBJECT(media), "kernel_path", kernel_path, NULL); |