mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-25 23:36:16 +02:00
Don't send settings that depend on disabled experimental features to the daemon
This fixes warnings like warning: Ignoring setting 'auto-allocate-uids' because experimental feature 'auto-allocate-uids' is not enabled warning: Ignoring setting 'impure-env' because experimental feature 'configurable-impure-env' is not enabled when using the daemon and the user didn't actually set those settings. Note: this also hides those settings from `nix config show`, but that seems a good thing.
This commit is contained in:
parent
d2c6a93bd5
commit
0acd783190
3 changed files with 10 additions and 6 deletions
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Template implementations (as opposed to mere declarations).
|
* Template implementations (as opposed to mere declarations).
|
||||||
*
|
*
|
||||||
* This file is an exmample of the "impl.hh" pattern. See the
|
* This file is an example of the "impl.hh" pattern. See the
|
||||||
* contributing guide.
|
* contributing guide.
|
||||||
*
|
*
|
||||||
* One only needs to include this when one is declaring a
|
* One only needs to include this when one is declaring a
|
||||||
|
|
|
@ -84,7 +84,9 @@ void AbstractConfig::reapplyUnknownSettings()
|
||||||
void Config::getSettings(std::map<std::string, SettingInfo> & res, bool overriddenOnly)
|
void Config::getSettings(std::map<std::string, SettingInfo> & res, bool overriddenOnly)
|
||||||
{
|
{
|
||||||
for (const auto & opt : _settings)
|
for (const auto & opt : _settings)
|
||||||
if (!opt.second.isAlias && (!overriddenOnly || opt.second.setting->overridden))
|
if (!opt.second.isAlias
|
||||||
|
&& (!overriddenOnly || opt.second.setting->overridden)
|
||||||
|
&& experimentalFeatureSettings.isEnabled(opt.second.setting->experimentalFeature))
|
||||||
res.emplace(opt.first, SettingInfo{opt.second.setting->to_string(), opt.second.setting->description});
|
res.emplace(opt.first, SettingInfo{opt.second.setting->to_string(), opt.second.setting->description});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,19 @@ source common.sh
|
||||||
NIX_CONFIG='
|
NIX_CONFIG='
|
||||||
experimental-features = nix-command
|
experimental-features = nix-command
|
||||||
accept-flake-config = true
|
accept-flake-config = true
|
||||||
' nix config show accept-flake-config 1>$TEST_ROOT/stdout 2>$TEST_ROOT/stderr
|
' expect 1 nix config show accept-flake-config 1>$TEST_ROOT/stdout 2>$TEST_ROOT/stderr
|
||||||
grepQuiet "false" $TEST_ROOT/stdout
|
[[ $(cat $TEST_ROOT/stdout) = '' ]]
|
||||||
grepQuiet "Ignoring setting 'accept-flake-config' because experimental feature 'flakes' is not enabled" $TEST_ROOT/stderr
|
grepQuiet "Ignoring setting 'accept-flake-config' because experimental feature 'flakes' is not enabled" $TEST_ROOT/stderr
|
||||||
|
grepQuiet "error: could not find setting 'accept-flake-config'" $TEST_ROOT/stderr
|
||||||
|
|
||||||
# 'flakes' experimental-feature is disabled after, ignore and warn
|
# 'flakes' experimental-feature is disabled after, ignore and warn
|
||||||
NIX_CONFIG='
|
NIX_CONFIG='
|
||||||
accept-flake-config = true
|
accept-flake-config = true
|
||||||
experimental-features = nix-command
|
experimental-features = nix-command
|
||||||
' nix config show accept-flake-config 1>$TEST_ROOT/stdout 2>$TEST_ROOT/stderr
|
' expect 1 nix config show accept-flake-config 1>$TEST_ROOT/stdout 2>$TEST_ROOT/stderr
|
||||||
grepQuiet "false" $TEST_ROOT/stdout
|
[[ $(cat $TEST_ROOT/stdout) = '' ]]
|
||||||
grepQuiet "Ignoring setting 'accept-flake-config' because experimental feature 'flakes' is not enabled" $TEST_ROOT/stderr
|
grepQuiet "Ignoring setting 'accept-flake-config' because experimental feature 'flakes' is not enabled" $TEST_ROOT/stderr
|
||||||
|
grepQuiet "error: could not find setting 'accept-flake-config'" $TEST_ROOT/stderr
|
||||||
|
|
||||||
# 'flakes' experimental-feature is enabled before, process
|
# 'flakes' experimental-feature is enabled before, process
|
||||||
NIX_CONFIG='
|
NIX_CONFIG='
|
||||||
|
|
Loading…
Reference in a new issue