Add toDhall to lib
This commit is contained in:
parent
d85ba92b5a
commit
307a261dfa
23
flake.nix
23
flake.nix
|
@ -101,6 +101,29 @@
|
|||
}) erisInfo);
|
||||
in assert length caps == 1; head caps;
|
||||
|
||||
generators = prev.generators // rec {
|
||||
toDhall = x:
|
||||
with builtins;
|
||||
let concatItems = final.strings.concatStringsSep ", ";
|
||||
in if isAttrs x then
|
||||
"{ ${
|
||||
concatItems (prev.attrsets.mapAttrsToList
|
||||
(key: value: "${key} = ${toDhall value}") x)
|
||||
} }"
|
||||
else if isList x then
|
||||
"[ ${concatItems (map toDhall x)} ]"
|
||||
else if isString x || isPath x then
|
||||
''"${x}"''
|
||||
else if isInt x then
|
||||
"${if x < 0 then "" else "+"}${toString}"
|
||||
else if isFloat x then
|
||||
toString x
|
||||
else if isBool x then
|
||||
(if x then "True" else "False")
|
||||
else
|
||||
"abort generators.toDhall: unhandled value (${x})";
|
||||
};
|
||||
|
||||
nixosSystem =
|
||||
# A derivative of the function for generating Linux NixOS systems.
|
||||
# This one is not so well tested…
|
||||
|
|
Loading…
Reference in New Issue