mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Pass all --option flags to the daemon
This commit is contained in:
parent
89a8207029
commit
90d9c58d4d
4 changed files with 30 additions and 3 deletions
|
@ -113,6 +113,7 @@ void Settings::loadConfFile()
|
||||||
void Settings::set(const string & name, const string & value)
|
void Settings::set(const string & name, const string & value)
|
||||||
{
|
{
|
||||||
settings[name] = value;
|
settings[name] = value;
|
||||||
|
overrides[name] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,4 +194,10 @@ string Settings::pack()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Settings::SettingsMap Settings::getOverrides()
|
||||||
|
{
|
||||||
|
return overrides;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,8 @@ namespace nix {
|
||||||
|
|
||||||
struct Settings {
|
struct Settings {
|
||||||
|
|
||||||
|
typedef std::map<string, string> SettingsMap;
|
||||||
|
|
||||||
Settings();
|
Settings();
|
||||||
|
|
||||||
void processEnvironment();
|
void processEnvironment();
|
||||||
|
@ -22,6 +24,8 @@ struct Settings {
|
||||||
|
|
||||||
string pack();
|
string pack();
|
||||||
|
|
||||||
|
SettingsMap getOverrides();
|
||||||
|
|
||||||
/* The directory where we store sources and derived files. */
|
/* The directory where we store sources and derived files. */
|
||||||
Path nixStore;
|
Path nixStore;
|
||||||
|
|
||||||
|
@ -172,9 +176,7 @@ struct Settings {
|
||||||
bool envKeepDerivations;
|
bool envKeepDerivations;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef std::map<string, string> SettingsMap;
|
SettingsMap settings, overrides;
|
||||||
|
|
||||||
SettingsMap settings;
|
|
||||||
|
|
||||||
void get(string & res, const string & name);
|
void get(string & res, const string & name);
|
||||||
void get(bool & res, const string & name);
|
void get(bool & res, const string & name);
|
||||||
|
|
|
@ -184,6 +184,7 @@ RemoteStore::~RemoteStore()
|
||||||
void RemoteStore::setOptions()
|
void RemoteStore::setOptions()
|
||||||
{
|
{
|
||||||
writeInt(wopSetOptions, to);
|
writeInt(wopSetOptions, to);
|
||||||
|
|
||||||
writeInt(settings.keepFailed, to);
|
writeInt(settings.keepFailed, to);
|
||||||
writeInt(settings.keepGoing, to);
|
writeInt(settings.keepGoing, to);
|
||||||
writeInt(settings.tryFallback, to);
|
writeInt(settings.tryFallback, to);
|
||||||
|
@ -202,6 +203,15 @@ void RemoteStore::setOptions()
|
||||||
if (GET_PROTOCOL_MINOR(daemonVersion) >= 10)
|
if (GET_PROTOCOL_MINOR(daemonVersion) >= 10)
|
||||||
writeInt(settings.useSubstitutes, to);
|
writeInt(settings.useSubstitutes, to);
|
||||||
|
|
||||||
|
if (GET_PROTOCOL_MINOR(daemonVersion) >= 12) {
|
||||||
|
Settings::SettingsMap overrides = settings.getOverrides();
|
||||||
|
writeInt(overrides.size(), to);
|
||||||
|
foreach (Settings::SettingsMap::iterator, i, overrides) {
|
||||||
|
writeString(i->first, to);
|
||||||
|
writeString(i->second, to);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processStderr();
|
processStderr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -544,6 +544,14 @@ static void performOp(unsigned int clientVersion,
|
||||||
settings.buildCores = readInt(from);
|
settings.buildCores = readInt(from);
|
||||||
if (GET_PROTOCOL_MINOR(clientVersion) >= 10)
|
if (GET_PROTOCOL_MINOR(clientVersion) >= 10)
|
||||||
settings.useSubstitutes = readInt(from) != 0;
|
settings.useSubstitutes = readInt(from) != 0;
|
||||||
|
if (GET_PROTOCOL_MINOR(clientVersion) >= 12) {
|
||||||
|
unsigned int n = readInt(from);
|
||||||
|
for (unsigned int i = 0; i < n; i++) {
|
||||||
|
string name = readString(from);
|
||||||
|
string value = readString(from);
|
||||||
|
settings.set("untrusted-" + name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
startWork();
|
startWork();
|
||||||
stopWork();
|
stopWork();
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue