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:
parent
6b889e0588
commit
ef2d10f7e7
8 changed files with 32 additions and 20 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue