[glick2] Prepend prefix to PATH and XDG_* vars
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glick2] Prepend prefix to PATH and XDG_* vars
- Date: Wed, 30 Nov 2011 08:08:33 +0000 (UTC)
commit 92636ba63ac1cc622909a75f3eece2345cdcf73b
Author: Alexander Larsson <alexl redhat com>
Date: Tue Nov 29 16:37:05 2011 +0100
Prepend prefix to PATH and XDG_* vars
runner.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/runner.c b/runner.c
index 20c6abc..a5ac2fe 100644
--- a/runner.c
+++ b/runner.c
@@ -29,6 +29,22 @@
#endif
static void
+update_env_var (const char *var, const char *dir, const char *default_dir)
+{
+ const char *env;
+ char *value;
+
+ env = g_getenv (var);
+ if (env == NULL || *env == 0)
+ value = g_strconcat (dir, ":", default_dir, NULL);
+ else
+ value = g_strconcat (dir, ":", env, NULL);
+
+ g_setenv (var, value, 1);
+ g_free (value);
+}
+
+static void
dummy_getattr (fuse_req_t req, fuse_ino_t ino,
struct fuse_file_info *fi)
{
@@ -532,5 +548,10 @@ main (int argc, char *argv[])
child_argv[i++] = NULL;
setenv ("BUNDLE_PREFIX", glick_subdir, TRUE);
+
+ update_env_var ("XDG_CONFIG_DIRS", BUNDLE_PREFIX "/data/etc", "/etc/xdg");
+ update_env_var ("XDG_DATA_DIRS", BUNDLE_PREFIX "/data/share", "/usr/share");
+ update_env_var ("PATH", BUNDLE_PREFIX "/data/bin", "/usr/bin:/bin");
+
return execv (child_argv[0], child_argv);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]