]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: command: Introduce virCommandAddEnvXDG helper
authorErik Skultety <eskultet@redhat.com>
Mon, 4 Mar 2019 11:47:08 +0000 (12:47 +0100)
committerErik Skultety <eskultet@redhat.com>
Fri, 15 Mar 2019 15:41:26 +0000 (16:41 +0100)
Some modules/libraries within QEMU could make use of the XDG_ vars when
writing their data to the disk. Define the most common XDG variables
and point them to the specific driver's libDir, i.e.

XDG_CACHE_HOME -> /var/lib/libvirt/<driver>/.cache
XDG_DATA_HOME -> /var/lib/libvirt/<driver>/.local/share
XDG_CONFIG_HOME -> /var/lib/libvirt/<driver>/.config

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
src/libvirt_private.syms
src/util/vircommand.c
src/util/vircommand.h

index 9582b722628016fc868c66bd1e854ce229a73451..8eab842c7d09736446fce49dafab89548e051a52 100644 (file)
@@ -1635,6 +1635,7 @@ virCommandAddEnvPassAllowSUID;
 virCommandAddEnvPassBlockSUID;
 virCommandAddEnvPassCommon;
 virCommandAddEnvString;
+virCommandAddEnvXDG;
 virCommandAllowCap;
 virCommandClearCaps;
 virCommandDaemonize;
index 84a65a2f6d330401311960e39f341ab455c16e57..15e2f0ef1eb1d323f05d0d50f75d3170970fc92d 100644 (file)
@@ -1483,6 +1483,27 @@ virCommandAddEnvPassCommon(virCommandPtr cmd)
     virCommandAddEnvPassBlockSUID(cmd, "TMPDIR", NULL);
 }
 
+
+void
+virCommandAddEnvXDG(virCommandPtr cmd, const char *baseDir)
+{
+    if (!cmd || cmd->has_error)
+        return;
+
+    if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 3) < 0) {
+        cmd->has_error = ENOMEM;
+        return;
+    }
+
+    virCommandAddEnvFormat(cmd, "XDG_DATA_HOME=%s/%s",
+                           baseDir, ".local/share");
+    virCommandAddEnvFormat(cmd, "XDG_CACHE_HOME=%s/%s",
+                           baseDir, ".cache");
+    virCommandAddEnvFormat(cmd, "XDG_CONFIG_HOME=%s/%s",
+                           baseDir, ".config");
+}
+
+
 /**
  * virCommandAddArg:
  * @cmd: the command to modify
index 99849051f8edfee1fa68f148cdcb4e4cfc766c4b..efdc5dd00d12b3c6c37c28956d0d5447675bb4f6 100644 (file)
@@ -122,6 +122,8 @@ void virCommandAddEnvPassAllowSUID(virCommandPtr cmd,
 
 void virCommandAddEnvPassCommon(virCommandPtr cmd);
 
+void virCommandAddEnvXDG(virCommandPtr cmd, const char *baseDir);
+
 void virCommandAddArg(virCommandPtr cmd,
                       const char *val) ATTRIBUTE_NONNULL(2);