aboutsummaryrefslogtreecommitdiff
path: root/lib/generators.nix
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-06-28 11:12:39 -0400
committerMatthew Bauer <mjbauer95@gmail.com>2018-06-28 15:24:12 -0400
commit337b58950b9f945933eb82b46c9c4ceb1af3f997 (patch)
tree937e217c417d2ea89df557f7ec3cbfcfb5e1c431 /lib/generators.nix
parentd361371d236c90bfb550e827124b5350deeadbda (diff)
generators: refactor toPlist
Address PR comments Refactors - Rename toPLIST -> toPlist
Diffstat (limited to 'lib/generators.nix')
-rw-r--r--lib/generators.nix65
1 files changed, 32 insertions, 33 deletions
diff --git a/lib/generators.nix b/lib/generators.nix
index 143329815837..073bb6982e14 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -173,54 +173,53 @@ rec {
fna);
in if fna == {} then "<λ>"
else "<λ:{${showFnas}}>"
- else abort "toPretty: should never happen (v = ${v})";
+ else abort "generators.toPretty: should never happen (v = ${v})";
# PLIST handling
- toPLIST = {}: v: let
- pprExpr = ind: x: with builtins;
+ toPlist = {}: v: let
+ expr = ind: x: with builtins;
if isNull x then "" else
- if isBool x then pprBool ind x else
- if isInt x then pprInt ind x else
- if isString x then pprStr ind x else
- if isList x then pprList ind x else
- if isAttrs x then pprAttrs ind x else
- abort "pprExpr: should never happen (v = ${v})";
+ if isBool x then bool ind x else
+ if isInt x then int ind x else
+ if isString x then str ind x else
+ if isList x then list ind x else
+ if isAttrs x then attrs ind x else
+ abort "generators.toPlist: should never happen (v = ${v})";
- pprLiteral = ind: x: ind + x;
+ literal = ind: x: ind + x;
- pprBool = ind: x: pprLiteral ind (if x then "<true/>" else "<false/>");
- pprInt = ind: x: pprLiteral ind "<integer>${toString x}</integer>";
- pprStr = ind: x: pprLiteral ind "<string>${x}</string>";
- pprKey = ind: x: pprLiteral ind "<key>${x}</key>";
+ bool = ind: x: literal ind (if x then "<true/>" else "<false/>");
+ int = ind: x: literal ind "<integer>${toString x}</integer>";
+ str = ind: x: literal ind "<string>${x}</string>";
+ key = ind: x: literal ind "<key>${x}</key>";
- pprIndent = ind: pprExpr "\t${ind}";
+ indent = ind: expr "\t${ind}";
- pprItem = ind: libStr.concatMapStringsSep "\n" (pprIndent ind);
+ item = ind: libStr.concatMapStringsSep "\n" (indent ind);
- pprList = ind: x: libStr.concatStringsSep "\n" [
- (pprLiteral ind "<array>")
- (pprItem ind x)
- (pprLiteral ind "</array>")
+ list = ind: x: libStr.concatStringsSep "\n" [
+ (literal ind "<array>")
+ (item ind x)
+ (literal ind "</array>")
];
- pprAttrs = ind: x: libStr.concatStringsSep "\n" [
- (pprLiteral ind "<dict>")
- (pprAttr ind x)
- (pprLiteral ind "</dict>")
+ attrs = ind: x: libStr.concatStringsSep "\n" [
+ (literal ind "<dict>")
+ (attr ind x)
+ (literal ind "</dict>")
];
- pprAttr = let attrFilter = name: value: name != "_module" && value != null;
+ attr = let attrFilter = name: value: name != "_module" && value != null;
in ind: x: libStr.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList
(name: value: lib.optional (attrFilter name value) [
- (pprKey "\t${ind}" name)
- (pprExpr "\t${ind}" value)
+ (key "\t${ind}" name)
+ (expr "\t${ind}" value)
]) x));
- in ''
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- ${pprExpr "" v}
- </plist>'';
+ in ''<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+${expr "" v}
+</plist>'';
}