summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2019-09-24 14:39:18 -0700
committerPatrick Griffis <tingping@tingping.se>2019-09-24 14:39:18 -0700
commitc2766fc527900bcd159c87ff16b4fadd32fec415 (patch)
tree639ab1077fe60888b8b556783724c57b1a3abb67
parentbbd4bedeccc5368f9b7f85a2f748e2c72ff0c0f1 (diff)
downloadflatpak-wip/tingping/eula-metadata.tar.gz
WIP: Show EULA metadata at install timewip/tingping/eula-metadata
-rw-r--r--app/flatpak-cli-transaction.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/flatpak-cli-transaction.c b/app/flatpak-cli-transaction.c
index 6ec1372d..c45ca70d 100644
--- a/app/flatpak-cli-transaction.c
+++ b/app/flatpak-cli-transaction.c
@@ -645,6 +645,23 @@ append_tags (GPtrArray *tags_array,
}
}
+static char *
+extract_eula (GKeyFile *metadata,
+ GKeyFile *old_metadata)
+{
+ g_autofree char *eula_url;
+ g_autofree char *old_eula_url;
+
+ // FIXME: Better group?
+ eula_url = g_key_file_get_string (metadata, FLATPAK_METADATA_GROUP_APPLICATION, "eula-url", NULL);
+ old_eula_url = g_key_file_get_string (old_metadata, FLATPAK_METADATA_GROUP_APPLICATION, "eula-url", NULL);
+
+ if (eula_url && g_strcmp0(eula_url, old_eula_url))
+ return g_steal_pointer (&eula_url);
+
+ return NULL;
+}
+
static void
print_perm_line (int idx,
GPtrArray *items,
@@ -688,6 +705,7 @@ print_permissions (FlatpakCliTransaction *self,
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);
+ g_autofree char *eula_url = NULL;
FlatpakTablePrinter *printer;
int max_permission_width;
int n_permission_cols;
@@ -698,6 +716,7 @@ print_permissions (FlatpakCliTransaction *self,
if (metadata == NULL)
return;
+ // FIXME: EULA can apply to runtimes
/* Only apps have permissions */
if (flatpak_ref_get_kind (rref) != FLATPAK_REF_KIND_APP)
return;
@@ -712,6 +731,7 @@ print_permissions (FlatpakCliTransaction *self,
append_bus (system_bus_talk, system_bus_own,
metadata, old_metadata, FLATPAK_METADATA_GROUP_SYSTEM_BUS_POLICY);
append_tags (tags, metadata, old_metadata);
+ eula_url = extract_eula (metadata, old_metadata);
j = 1;
if (files->len > 0)
@@ -788,6 +808,8 @@ print_permissions (FlatpakCliTransaction *self,
print_perm_line (j++, system_bus_own, cols);
if (tags->len > 0)
print_perm_line (j++, tags, cols);
+ if (eula_url) // FIXME: Better formatting
+ g_print (" EULA: %s\n", eula_url);
}
static void