mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
Merge pull request #223407 from AngryAnt/toplist-path
lib.toPlist: Add support for path values
This commit is contained in:
commit
e31c8b22dd
4 changed files with 76 additions and 0 deletions
|
@ -101,3 +101,7 @@ end_of_line = unset
|
||||||
insert_final_newline = unset
|
insert_final_newline = unset
|
||||||
trim_trailing_whitespace = unset
|
trim_trailing_whitespace = unset
|
||||||
charset = unset
|
charset = unset
|
||||||
|
|
||||||
|
[lib/tests/*.plist]
|
||||||
|
indent_style = tab
|
||||||
|
insert_final_newline = unset
|
||||||
|
|
|
@ -355,6 +355,7 @@ rec {
|
||||||
# PLIST handling
|
# PLIST handling
|
||||||
toPlist = {}: v: let
|
toPlist = {}: v: let
|
||||||
isFloat = builtins.isFloat or (x: false);
|
isFloat = builtins.isFloat or (x: false);
|
||||||
|
isPath = x: builtins.typeOf x == "path";
|
||||||
expr = ind: x: with builtins;
|
expr = ind: x: with builtins;
|
||||||
if x == null then "" else
|
if x == null then "" else
|
||||||
if isBool x then bool ind x else
|
if isBool x then bool ind x else
|
||||||
|
@ -362,6 +363,7 @@ rec {
|
||||||
if isString x then str ind x else
|
if isString x then str ind x else
|
||||||
if isList x then list ind x else
|
if isList x then list ind x else
|
||||||
if isAttrs x then attrs ind x else
|
if isAttrs x then attrs ind x else
|
||||||
|
if isPath x then str ind (toString x) else
|
||||||
if isFloat x then float ind x else
|
if isFloat x then float ind x else
|
||||||
abort "generators.toPlist: should never happen (v = ${v})";
|
abort "generators.toPlist: should never happen (v = ${v})";
|
||||||
|
|
||||||
|
|
|
@ -919,6 +919,30 @@ runTests {
|
||||||
expected = "«foo»";
|
expected = "«foo»";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testToPlist =
|
||||||
|
let
|
||||||
|
deriv = derivation { name = "test"; builder = "/bin/sh"; system = "aarch64-linux"; };
|
||||||
|
in {
|
||||||
|
expr = mapAttrs (const (generators.toPlist { })) {
|
||||||
|
value = {
|
||||||
|
nested.values = rec {
|
||||||
|
int = 42;
|
||||||
|
float = 0.1337;
|
||||||
|
bool = true;
|
||||||
|
emptystring = "";
|
||||||
|
string = "fn\${o}\"r\\d";
|
||||||
|
newlinestring = "\n";
|
||||||
|
path = /. + "/foo";
|
||||||
|
null_ = null;
|
||||||
|
list = [ 3 4 "test" ];
|
||||||
|
emptylist = [];
|
||||||
|
attrs = { foo = null; "foo b/ar" = "baz"; };
|
||||||
|
emptyattrs = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
expected = { value = builtins.readFile ./test-to-plist-expected.plist; };
|
||||||
|
};
|
||||||
|
|
||||||
testToLuaEmptyAttrSet = {
|
testToLuaEmptyAttrSet = {
|
||||||
expr = generators.toLua {} {};
|
expr = generators.toLua {} {};
|
||||||
|
|
46
lib/tests/test-to-plist-expected.plist
Normal file
46
lib/tests/test-to-plist-expected.plist
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<?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">
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<dict>
|
||||||
|
<key>values</key>
|
||||||
|
<dict>
|
||||||
|
<key>attrs</key>
|
||||||
|
<dict>
|
||||||
|
<key>foo b/ar</key>
|
||||||
|
<string>baz</string>
|
||||||
|
</dict>
|
||||||
|
<key>bool</key>
|
||||||
|
<true/>
|
||||||
|
<key>emptyattrs</key>
|
||||||
|
<dict>
|
||||||
|
|
||||||
|
</dict>
|
||||||
|
<key>emptylist</key>
|
||||||
|
<array>
|
||||||
|
|
||||||
|
</array>
|
||||||
|
<key>emptystring</key>
|
||||||
|
<string></string>
|
||||||
|
<key>float</key>
|
||||||
|
<real>0.133700</real>
|
||||||
|
<key>int</key>
|
||||||
|
<integer>42</integer>
|
||||||
|
<key>list</key>
|
||||||
|
<array>
|
||||||
|
<integer>3</integer>
|
||||||
|
<integer>4</integer>
|
||||||
|
<string>test</string>
|
||||||
|
</array>
|
||||||
|
<key>newlinestring</key>
|
||||||
|
<string>
|
||||||
|
</string>
|
||||||
|
<key>path</key>
|
||||||
|
<string>/foo</string>
|
||||||
|
<key>string</key>
|
||||||
|
<string>fn${o}"r\d</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Loading…
Add table
Add a link
Reference in a new issue