[gnome-software/wip/rancell/snapd-glib: 6/6] Merge with trunk



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]