1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-06 13:21:47 +02:00

Clean up env var logic in preparation for Windows

It's a little weird we don't check the return status for these, but
changing that would introduce risk so I did not.

Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
This commit is contained in:
John Ericson 2024-04-04 12:48:54 -04:00
parent 6b889e0588
commit ef2d10f7e7
8 changed files with 32 additions and 20 deletions

View file

@ -1,21 +1,12 @@
#include "util.hh"
#include "environment-variables.hh"
#include <cstdlib>
extern char * * environ __attribute__((weak));
#include "environment-variables.hh"
namespace nix {
void clearEnv()
int setEnv(const char * name, const char * value)
{
for (auto & name : getEnv())
unsetenv(name.first.c_str());
}
void replaceEnv(const std::map<std::string, std::string> & newEnv)
{
clearEnv();
for (auto & newEnvVar : newEnv)
setenv(newEnvVar.first.c_str(), newEnvVar.second.c_str(), 1);
return ::setenv(name, value, 1);
}
}