]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/basic/env-util.c
env-util: add helper to replace env block
[thirdparty/systemd.git] / src / basic / env-util.c
index 44772f778dedbbb47809206d2a4425df5ec63bd5..d3bf73385fbcf64ccc35263a105c43b0d2ddc476 100644 (file)
@@ -1074,3 +1074,22 @@ int getenv_steal_erase(const char *name, char **ret) {
 
         return 1;
 }
+
+int set_full_environment(char **env) {
+        int r;
+
+        clearenv();
+
+        STRV_FOREACH(e, env) {
+                _cleanup_free_ char *k = NULL, *v = NULL;
+
+                r = split_pair(*e, "=", &k, &v);
+                if (r < 0)
+                        return r;
+
+                if (setenv(k, v, /* overwrite= */ true) < 0)
+                        return -errno;
+        }
+
+        return 0;
+}