summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2018-08-20 19:15:53 -0400
committerPatrick Griffis <tingping@tingping.se>2018-08-20 19:28:10 -0400
commitb1ae27215bdf9011d9702fdaa574d2c581434a87 (patch)
tree1fe31b935538bbda534bdbfc1f16e76895ae1aed
parent7b8e9ea4a17ccaf3418c48294ae13b784d19cb63 (diff)
downloadflatpak-tingping/tag.tar.gz
transaction: Print tags on installtingping/tag
This is specifically useful for the `properietary` tag that is used on flathub.
-rw-r--r--app/flatpak-cli-transaction.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/flatpak-cli-transaction.c b/app/flatpak-cli-transaction.c
index 5ccc0227..3820c42a 100644
--- a/app/flatpak-cli-transaction.c
+++ b/app/flatpak-cli-transaction.c
@@ -435,6 +435,28 @@ append_bus (GPtrArray *talk,
}
static void
+append_tags (GPtrArray *tags_array,
+ GKeyFile *metadata,
+ GKeyFile *old_metadata)
+{
+ gsize i, size = 0;
+ g_auto(GStrv) tags = g_key_file_get_string_list (metadata, FLATPAK_METADATA_GROUP_APPLICATION, "tags",
+ &size, NULL);
+ g_auto(GStrv) old_tags = NULL;
+
+ if (old_metadata)
+ old_tags = g_key_file_get_string_list (old_metadata, FLATPAK_METADATA_GROUP_APPLICATION, "tags",
+ NULL, NULL);
+
+ for (i = 0; i < size; i++)
+ {
+ const char *tag = tags[i];
+ if (old_tags == NULL || !g_strv_contains ((const char * const *)old_tags, tag))
+ g_ptr_array_add (tags_array, g_strdup (tag));
+ }
+}
+
+static void
print_perm_line (FlatpakTablePrinter *printer,
const char *title,
GPtrArray *items)
@@ -469,6 +491,7 @@ print_permissions (FlatpakTablePrinter *printer,
g_autoptr(GPtrArray) session_bus_own = g_ptr_array_new_with_free_func (g_free);
g_autoptr(GPtrArray) system_bus_talk = g_ptr_array_new_with_free_func (g_free);
g_autoptr(GPtrArray) system_bus_own = g_ptr_array_new_with_free_func (g_free);
+ g_autoptr(GPtrArray) tags = g_ptr_array_new_with_free_func (g_free);
if (metadata == NULL)
return;
@@ -508,6 +531,10 @@ print_permissions (FlatpakTablePrinter *printer,
print_perm_line (printer,
old_metadata ? _("new system dbus ownership") : _("system dbus ownership"),
system_bus_own);
+ append_tags (tags, metadata, old_metadata);
+ print_perm_line (printer,
+ old_metadata ? _("new tags") : _("tags"),
+ tags);
}
static gboolean