summaryrefslogtreecommitdiff
path: root/builder/builder-source.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2015-12-09 10:33:54 +0100
committerAlexander Larsson <alexl@redhat.com>2015-12-09 10:33:54 +0100
commit3fb4226c81124915d03ef9acbdb75cda9c1fe25f (patch)
tree761355f3aef2dc716d6a2ad2e31f88b5095dc1c5 /builder/builder-source.c
parentf7b20fad85b6675e9568f30cab9032eb87c58943 (diff)
downloadxdg-app-3fb4226c81124915d03ef9acbdb75cda9c1fe25f.tar.gz
builder: Make the builder manifest objects serializable to json
Diffstat (limited to 'builder/builder-source.c')
-rw-r--r--builder/builder-source.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/builder/builder-source.c b/builder/builder-source.c
index 3a56442..5d0cc92 100644
--- a/builder/builder-source.c
+++ b/builder/builder-source.c
@@ -149,6 +149,37 @@ serializable_iface_init (JsonSerializableIface *serializable_iface)
{
}
+JsonNode *
+builder_source_to_json (BuilderSource *self)
+{
+ JsonNode *node;
+ JsonObject *object;
+ const gchar *type = NULL;
+
+ node = json_gobject_serialize (G_OBJECT (self));
+ object = json_node_get_object (node);
+
+ if (BUILDER_IS_SOURCE_ARCHIVE (self))
+ type = "archive";
+ else if (BUILDER_IS_SOURCE_FILE (self))
+ type = "file";
+ else if (BUILDER_IS_SOURCE_SCRIPT (self))
+ type = "script";
+ else if (BUILDER_IS_SOURCE_PATCH (self))
+ type = "patch";
+ else if (BUILDER_IS_SOURCE_GIT (self))
+ type = "git";
+ else if (BUILDER_IS_SOURCE_BZR (self))
+ type = "bzr";
+ else
+ g_warning ("Unknown source type");
+
+ if (type)
+ json_object_set_string_member (object, "type", type);
+
+ return node;
+}
+
BuilderSource *
builder_source_from_json (JsonNode *node)
{