dir: If overrides are syntactically invalid, include path in error message

It's unhelpful to say something like "Key file contains line “x” which is
not a key-value pair, group, or comment" without specifying which file
we are talking about.

Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie
2023-02-08 18:34:05 +00:00
parent 628750d2de
commit 3ede5382fa
3 changed files with 9 additions and 3 deletions

View File

@@ -562,6 +562,7 @@ FlatpakDeploy * flatpak_dir_load_deployed (Fla
char * flatpak_dir_load_override (FlatpakDir *dir,
const char *app_id,
gsize *length,
GFile **file_out,
GError **error);
OstreeRepo * flatpak_dir_get_repo (FlatpakDir *self);
gboolean flatpak_dir_ensure_path (FlatpakDir *self,

View File

@@ -2799,6 +2799,7 @@ char *
flatpak_dir_load_override (FlatpakDir *self,
const char *app_id,
gsize *length,
GFile **file_out,
GError **error)
{
g_autoptr(GFile) override_dir = NULL;
@@ -2820,6 +2821,9 @@ flatpak_dir_load_override (FlatpakDir *self,
return NULL;
}
if (file_out != NULL)
*file_out = g_object_ref (file);
return metadata_contents;
}
@@ -2828,12 +2832,13 @@ flatpak_load_override_keyfile (const char *app_id, gboolean user, GError **error
{
g_autofree char *metadata_contents = NULL;
gsize metadata_size;
g_autoptr(GFile) file = NULL;
g_autoptr(GKeyFile) metakey = g_key_file_new ();
g_autoptr(FlatpakDir) dir = NULL;
dir = user ? flatpak_dir_get_user () : flatpak_dir_get_system_default ();
metadata_contents = flatpak_dir_load_override (dir, app_id, &metadata_size, error);
metadata_contents = flatpak_dir_load_override (dir, app_id, &metadata_size, &file, error);
if (metadata_contents == NULL)
return NULL;
@@ -2841,7 +2846,7 @@ flatpak_load_override_keyfile (const char *app_id, gboolean user, GError **error
metadata_contents,
metadata_size,
0, error))
return NULL;
return glnx_prefix_error_null (error, "%s", flatpak_file_get_path_cached (file));
return g_steal_pointer (&metakey);
}

View File

@@ -1714,7 +1714,7 @@ flatpak_installation_load_app_overrides (FlatpakInstallation *self,
if (dir == NULL)
return NULL;
metadata_contents = flatpak_dir_load_override (dir, app_id, &metadata_size, error);
metadata_contents = flatpak_dir_load_override (dir, app_id, &metadata_size, NULL, error);
if (metadata_contents == NULL)
return NULL;