[glick2] Prepend prefix to PATH and XDG_* vars



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]