summaryrefslogtreecommitdiff
path: root/osinfo/osinfo_db.c
diff options
context:
space:
mode:
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>2013-11-26 14:22:44 +0000
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>2013-11-29 11:22:21 +0000
commit8cc02c5883819cd8de03aaeeaf5b31c5e0916dc2 (patch)
tree5afb5427be3aaa2e8b43e2e377aca9d415328b17 /osinfo/osinfo_db.c
parentf2608b7fc72417c4e3757997052e70af170163e3 (diff)
downloadlibosinfo-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.c8
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);