forked from lix-project/lix
Merge changes If8ec210f,I6e2851b2 into main
* changes: libfetchers: serialise accept-flake-config properly libstore: declare SandboxMode JSON serialisation in the header
This commit is contained in:
commit
8f7ab26f96
|
@ -7,6 +7,32 @@
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
void to_json(nlohmann::json & j, const AcceptFlakeConfig & e)
|
||||||
|
{
|
||||||
|
if (e == AcceptFlakeConfig::False) {
|
||||||
|
j = false;
|
||||||
|
} else if (e == AcceptFlakeConfig::Ask) {
|
||||||
|
j = "ask";
|
||||||
|
} else if (e == AcceptFlakeConfig::True) {
|
||||||
|
j = true;
|
||||||
|
} else {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void from_json(const nlohmann::json & j, AcceptFlakeConfig & e)
|
||||||
|
{
|
||||||
|
if (j == false) {
|
||||||
|
e = AcceptFlakeConfig::False;
|
||||||
|
} else if (j == "ask") {
|
||||||
|
e = AcceptFlakeConfig::Ask;
|
||||||
|
} else if (j == true) {
|
||||||
|
e = AcceptFlakeConfig::True;
|
||||||
|
} else {
|
||||||
|
throw Error("Invalid accept-flake-config value '%s'", std::string(j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<> AcceptFlakeConfig BaseSetting<AcceptFlakeConfig>::parse(const std::string & str, const ApplyConfigOptions & options) const
|
template<> AcceptFlakeConfig BaseSetting<AcceptFlakeConfig>::parse(const std::string & str, const ApplyConfigOptions & options) const
|
||||||
{
|
{
|
||||||
if (str == "true") return AcceptFlakeConfig::True;
|
if (str == "true") return AcceptFlakeConfig::True;
|
||||||
|
|
|
@ -13,6 +13,9 @@ namespace nix {
|
||||||
|
|
||||||
enum class AcceptFlakeConfig { False, Ask, True };
|
enum class AcceptFlakeConfig { False, Ask, True };
|
||||||
|
|
||||||
|
void to_json(nlohmann::json & j, const AcceptFlakeConfig & e);
|
||||||
|
void from_json(const nlohmann::json & j, AcceptFlakeConfig & e);
|
||||||
|
|
||||||
struct FetchSettings : public Config
|
struct FetchSettings : public Config
|
||||||
{
|
{
|
||||||
FetchSettings();
|
FetchSettings();
|
||||||
|
|
|
@ -269,11 +269,31 @@ Path Settings::getDefaultSSLCertFile()
|
||||||
|
|
||||||
const std::string nixVersion = PACKAGE_VERSION;
|
const std::string nixVersion = PACKAGE_VERSION;
|
||||||
|
|
||||||
NLOHMANN_JSON_SERIALIZE_ENUM(SandboxMode, {
|
void to_json(nlohmann::json & j, const SandboxMode & e)
|
||||||
{SandboxMode::smEnabled, true},
|
{
|
||||||
{SandboxMode::smRelaxed, "relaxed"},
|
if (e == SandboxMode::smEnabled) {
|
||||||
{SandboxMode::smDisabled, false},
|
j = true;
|
||||||
});
|
} else if (e == SandboxMode::smRelaxed) {
|
||||||
|
j = "relaxed";
|
||||||
|
} else if (e == SandboxMode::smDisabled) {
|
||||||
|
j = false;
|
||||||
|
} else {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void from_json(const nlohmann::json & j, SandboxMode & e)
|
||||||
|
{
|
||||||
|
if (j == true) {
|
||||||
|
e = SandboxMode::smEnabled;
|
||||||
|
} else if (j == "relaxed") {
|
||||||
|
e = SandboxMode::smRelaxed;
|
||||||
|
} else if (j == false) {
|
||||||
|
e = SandboxMode::smDisabled;
|
||||||
|
} else {
|
||||||
|
throw Error("Invalid sandbox mode '%s'", std::string(j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<> SandboxMode BaseSetting<SandboxMode>::parse(const std::string & str, const ApplyConfigOptions & options) const
|
template<> SandboxMode BaseSetting<SandboxMode>::parse(const std::string & str, const ApplyConfigOptions & options) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,6 +14,9 @@ namespace nix {
|
||||||
|
|
||||||
typedef enum { smEnabled, smRelaxed, smDisabled } SandboxMode;
|
typedef enum { smEnabled, smRelaxed, smDisabled } SandboxMode;
|
||||||
|
|
||||||
|
void to_json(nlohmann::json & j, const SandboxMode & e);
|
||||||
|
void from_json(const nlohmann::json & j, SandboxMode & e);
|
||||||
|
|
||||||
struct MaxBuildJobsSetting : public BaseSetting<unsigned int>
|
struct MaxBuildJobsSetting : public BaseSetting<unsigned int>
|
||||||
{
|
{
|
||||||
MaxBuildJobsSetting(Config * options,
|
MaxBuildJobsSetting(Config * options,
|
||||||
|
|
Loading…
Reference in a new issue