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

Allow plugins to define new settings.

This commit is contained in:
Shea Levy 2018-02-13 14:43:32 -05:00
parent 3fe9767dd3
commit de4934ab3b
No known key found for this signature in database
GPG key ID: 5C0BD6957D86FE27
8 changed files with 65 additions and 32 deletions

View file

@ -161,6 +161,22 @@ void initPlugins()
throw Error("could not dynamically open plugin file '%s%': %s%", file, dlerror());
}
}
/* We handle settings registrations here, since plugins can add settings */
if (RegisterSetting::settingRegistrations) {
for (auto & registration : *RegisterSetting::settingRegistrations)
settings.addSetting(registration);
delete RegisterSetting::settingRegistrations;
}
settings.handleUnknownSettings();
}
RegisterSetting::SettingRegistrations * RegisterSetting::settingRegistrations;
RegisterSetting::RegisterSetting(AbstractSetting * s)
{
if (!settingRegistrations)
settingRegistrations = new SettingRegistrations;
settingRegistrations->emplace_back(s);
}