libfetchers: serialise accept-flake-config properly
The AcceptFlakeConfig type used was missing its JSON serialisation definition, so it was incorrectly serialised as an integer, ending up that way for example in the nix.conf manual page. Declare a proper serialisation. Change-Id: If8ec210f9d4dd42fe480c4e97d0a4920eb66a01e
This commit is contained in:
parent
d7c37324bb
commit
63ee2cdda3
2 changed files with 29 additions and 0 deletions
|
@ -7,6 +7,32 @@
|
|||
|
||||
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
|
||||
{
|
||||
if (str == "true") return AcceptFlakeConfig::True;
|
||||
|
|
|
@ -13,6 +13,9 @@ namespace nix {
|
|||
|
||||
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
|
||||
{
|
||||
FetchSettings();
|
||||
|
|
Loading…
Reference in a new issue