mirror of
https://github.com/flatpak/flatpak.git
synced 2026-02-23 01:45:48 -05:00
Write user-dirs.dirs under app's XDG_CONFIG_HOME
Creating the custom user-dirs.dirs under ~/.config won't work since later the config directory gets set via XDG_CONFIG_HOME. Pass in the app's data directory so that the the custom config directory can be used. https://bugs.freedesktop.org/show_bug.cgi?id=91164
This commit is contained in:
committed by
Alexander Larsson
parent
163b582a72
commit
ecf8ecf088
@@ -155,7 +155,7 @@ xdg_app_builtin_build (int argc, char **argv, GCancellable *cancellable, GError
|
||||
xdg_app_context_allow_host_fs (app_context);
|
||||
|
||||
xdg_app_run_add_environment_args (argv_array, NULL, app_id,
|
||||
app_context);
|
||||
app_context, NULL);
|
||||
|
||||
g_ptr_array_add (argv_array, g_strdup ("-a"));
|
||||
g_ptr_array_add (argv_array, g_file_get_path (app_files));
|
||||
|
||||
@@ -301,7 +301,7 @@ xdg_app_builtin_run (int argc, char **argv, GCancellable *cancellable, GError **
|
||||
g_ptr_array_add (argv_array, g_strdup ("-r"));
|
||||
|
||||
xdg_app_run_add_environment_args (argv_array, dbus_proxy_argv,
|
||||
app, app_context);
|
||||
app, app_context, app_id_dir);
|
||||
|
||||
g_ptr_array_add (argv_array, g_strdup ("-b"));
|
||||
g_ptr_array_add (argv_array, g_strdup_printf ("/run/host/fonts=%s", SYSTEM_FONTS_DIR));
|
||||
|
||||
@@ -1066,7 +1066,8 @@ void
|
||||
xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
||||
GPtrArray *dbus_proxy_argv,
|
||||
const char *app_id,
|
||||
XdgAppContext *context)
|
||||
XdgAppContext *context,
|
||||
GFile *app_id_dir)
|
||||
{
|
||||
GHashTableIter iter;
|
||||
gpointer key;
|
||||
@@ -1198,7 +1199,7 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
||||
g_warning ("Unexpected filesystem arg %s\n", filesystem);
|
||||
}
|
||||
|
||||
if (xdg_dirs_conf != NULL)
|
||||
if (xdg_dirs_conf != NULL && app_id_dir != NULL)
|
||||
{
|
||||
g_autofree char *tmp_path = NULL;
|
||||
g_autofree char *path = NULL;
|
||||
@@ -1210,7 +1211,8 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
||||
close (fd);
|
||||
if (g_file_set_contents (tmp_path, xdg_dirs_conf->str, xdg_dirs_conf->len, NULL))
|
||||
{
|
||||
path = g_build_filename (g_get_home_dir (), ".config/user-dirs.dirs", NULL);
|
||||
path = g_build_filename (gs_file_get_path_cached (app_id_dir),
|
||||
"config/user-dirs.dirs", NULL);
|
||||
g_ptr_array_add (argv_array, g_strdup ("-M"));
|
||||
g_ptr_array_add (argv_array, g_strdup_printf ("%s=%s", path, tmp_path));
|
||||
}
|
||||
|
||||
@@ -53,7 +53,8 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(XdgAppContext, xdg_app_context_free)
|
||||
void xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
||||
GPtrArray *dbus_proxy_argv,
|
||||
const char *app_id,
|
||||
XdgAppContext *context);
|
||||
XdgAppContext *context,
|
||||
GFile *app_id_dir);
|
||||
char ** xdg_app_run_get_minimal_env (gboolean devel);
|
||||
char ** xdg_app_run_apply_env_default (char **envp);
|
||||
char ** xdg_app_run_apply_env_appid (char **envp,
|
||||
|
||||
Reference in New Issue
Block a user