[gnome-builder] flatpak: try to guess the best config to load
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] flatpak: try to guess the best config to load
- Date: Thu, 25 Jan 2018 03:30:36 +0000 (UTC)
commit 208941c8620462b1090397ddecccbb270361f48f
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 24 19:28:47 2018 -0800
flatpak: try to guess the best config to load
We still want to make things stick across reloads of Builder, but this at
least tries to prefer org.gnome.Nautilus.json over
org.gnome.Nautils-3.24.json.
.../flatpak/gbp-flatpak-configuration-provider.c | 35 +++++++++++++++++++++-
src/plugins/flatpak/gbp-flatpak-configuration.h | 4 +--
2 files changed, 36 insertions(+), 3 deletions(-)
---
diff --git a/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
b/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
index b23ea5493..97db3fc07 100644
--- a/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
+++ b/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
@@ -965,6 +965,39 @@ gbp_flatpak_configuration_provider_load_async (IdeConfigurationProvider *provide
IDE_EXIT;
}
+static IdeConfiguration *
+guess_best_config (GPtrArray *ar)
+{
+ g_assert (ar != NULL);
+ g_assert (ar->len > 0);
+
+ for (guint i = 0; i < ar->len; i++)
+ {
+ GbpFlatpakConfiguration *config = g_ptr_array_index (ar, i);
+ g_autofree gchar *path = gbp_flatpak_configuration_get_manifest_path (config);
+
+ if (strstr (path, "-unstable.json") != NULL)
+ return IDE_CONFIGURATION (config);
+ }
+
+ for (guint i = 0; i < ar->len; i++)
+ {
+ GbpFlatpakConfiguration *config = g_ptr_array_index (ar, i);
+ g_autofree gchar *path = gbp_flatpak_configuration_get_manifest_path (config);
+ g_autofree gchar *base = g_path_get_basename (path);
+ const gchar *app_id = ide_configuration_get_app_id (IDE_CONFIGURATION (config));
+ g_autofree gchar *app_id_json = g_strdup_printf ("%s.json", app_id);
+
+ /* If appid.json is the same as the filename, that is the
+ * best match (after unstable) we can have. Use it.
+ */
+ if (dzl_str_equal0 (app_id_json, base))
+ return IDE_CONFIGURATION (config);
+ }
+
+ return g_ptr_array_index (ar, 0);
+}
+
static gboolean
gbp_flatpak_configuration_provider_load_finish (IdeConfigurationProvider *provider,
GAsyncResult *result,
@@ -992,7 +1025,7 @@ gbp_flatpak_configuration_provider_load_finish (IdeConfigurationProvider *provi
if (configs->len > 0)
{
- IdeConfiguration *config = g_ptr_array_index (configs, 0);
+ IdeConfiguration *config = guess_best_config (configs);
IdeContext *context = ide_object_get_context (IDE_OBJECT (self));
IdeConfigurationManager *manager = ide_context_get_configuration_manager (context);
diff --git a/src/plugins/flatpak/gbp-flatpak-configuration.h b/src/plugins/flatpak/gbp-flatpak-configuration.h
index f9223a9bf..7d3aab766 100644
--- a/src/plugins/flatpak/gbp-flatpak-configuration.h
+++ b/src/plugins/flatpak/gbp-flatpak-configuration.h
@@ -37,8 +37,8 @@ void gbp_flatpak_configuration_set_branch (GbpFlatpa
const gchar *gbp_flatpak_configuration_get_command (GbpFlatpakConfiguration *self);
void gbp_flatpak_configuration_set_command (GbpFlatpakConfiguration *self,
const gchar *command);
-const gchar * const *gbp_flatpak_configuration_get_build_args (GbpFlatpakConfiguration *self);
-void gbp_flatpak_configuration_set_build_args (GbpFlatpakConfiguration *self,
+const gchar * const *gbp_flatpak_configuration_get_build_args (GbpFlatpakConfiguration *self);
+void gbp_flatpak_configuration_set_build_args (GbpFlatpakConfiguration *self,
const gchar *const *build_args);
const gchar * const *gbp_flatpak_configuration_get_finish_args (GbpFlatpakConfiguration *self);
void gbp_flatpak_configuration_set_finish_args (GbpFlatpakConfiguration *self,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]