[gnome-software/wip/rancell/snapd-glib: 6/6] Merge with trunk
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/rancell/snapd-glib: 6/6] Merge with trunk
- Date: Fri, 3 Feb 2017 00:50:13 +0000 (UTC)
commit e611483f48595861297e3982f133bde85886445e
Merge: 9df0ea4 c7fe21e
Author: Robert Ancell <robert ancell canonical com>
Date: Fri Feb 3 13:49:50 2017 +1300
Merge with trunk
src/gs-application.c | 56 ++++++--------
src/gs-cmd.c | 13 +++
src/gs-plugin-loader-sync.c | 49 ++++++++++++
src/gs-plugin-loader-sync.h | 6 ++
src/gs-plugin-loader.c | 153 +++++++++++++++++++++++++++++++++++++
src/gs-plugin-loader.h | 10 +++
src/gs-plugin-types.h | 2 +
src/gs-plugin-vfuncs.h | 24 ++++++
src/gs-plugin.c | 2 +
src/gs-self-test.c | 44 +++++++++++
src/gs-shell-details.c | 25 ++++++
src/gs-shell-details.h | 2 +
src/gs-shell.c | 4 +
src/gs-utils.c | 61 +++++++++++++++
src/gs-utils.h | 3 +
src/plugins/gs-plugin-appstream.c | 30 +++++++
src/plugins/gs-plugin-dummy.c | 26 ++++++
src/plugins/gs-plugin-snap.c | 40 ++++++++++
18 files changed, 518 insertions(+), 32 deletions(-)
---
diff --cc src/plugins/gs-plugin-snap.c
index 6111f5c,79a1f8d..64b1667
--- a/src/plugins/gs-plugin-snap.c
+++ b/src/plugins/gs-plugin-snap.c
@@@ -221,6 -226,45 +221,46 @@@ refine_app (GsPlugin *plugin, GsApp *ap
}
}
+ gboolean
+ gs_plugin_url_to_app (GsPlugin *plugin,
+ GsAppList *list,
+ const gchar *url,
+ GCancellable *cancellable,
+ GError **error)
+ {
+ g_autofree gchar *scheme = NULL;
- g_autofree gchar *macaroon = NULL;
- g_auto(GStrv) discharges = NULL;
- g_autoptr(JsonArray) snaps = NULL;
- JsonObject *snap;
++ g_autoptr(SnapdClient) client = NULL;
++ g_autoptr(GPtrArray) snaps = NULL;
++ SnapdSnap *snap;
+ g_autofree gchar *path = NULL;
+ g_autoptr(GsApp) app = NULL;
+
+ /* not us */
+ scheme = gs_utils_get_url_scheme (url);
+ if (g_strcmp0 (scheme, "snap") != 0)
+ return TRUE;
+
+ /* create app */
+ path = gs_utils_get_url_path (url);
- get_macaroon (plugin, &macaroon, &discharges);
- snaps = gs_snapd_find_name (macaroon, discharges, path, cancellable, NULL);
- if (snaps == NULL || json_array_get_length (snaps) < 1)
++ client = get_client (plugin, cancellable, error);
++ if (client == NULL)
++ return FALSE;
++ snaps = snapd_client_find_sync (client, SNAPD_FIND_FLAGS_MATCH_NAME, path, cancellable, NULL);
++ if (snaps == NULL || snaps->len < 1)
+ return TRUE;
+
- snap = json_array_get_object_element (snaps, 0);
++ snap = snaps->pdata[0];
+ app = gs_app_new (json_object_get_string_member (snap, "name"));
+ gs_app_set_scope (app, AS_APP_SCOPE_SYSTEM);
+ gs_app_set_bundle_kind (app, AS_BUNDLE_KIND_SNAP);
+ gs_app_set_management_plugin (app, "snap");
+ gs_app_add_quirk (app, AS_APP_QUIRK_NOT_REVIEWABLE);
+ refine_app (plugin, app, snap, TRUE, cancellable);
+ gs_app_list_add (list, app);
+
+ return TRUE;
+ }
+
void
gs_plugin_destroy (GsPlugin *plugin)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]