diff options
author | Alexander Larsson <alexl@redhat.com> | 2015-12-09 10:33:54 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2015-12-09 10:33:54 +0100 |
commit | 3fb4226c81124915d03ef9acbdb75cda9c1fe25f (patch) | |
tree | 761355f3aef2dc716d6a2ad2e31f88b5095dc1c5 /builder/builder-source.c | |
parent | f7b20fad85b6675e9568f30cab9032eb87c58943 (diff) | |
download | xdg-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.c | 31 |
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) { |