diff options
author | Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> | 2018-05-26 19:01:18 +0300 |
---|---|---|
committer | Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> | 2018-05-26 19:01:18 +0300 |
commit | 2760b2446242e7873962e5e6548bee95dfe35aff (patch) | |
tree | 86d929e5c62e2a7054d6872adad7889a595a1bda /lib | |
parent | 840e430744013afa1e5df95173977e070b6edfa1 (diff) | |
parent | 59c09a52f2793bc31a68742082d8a89ca4795a8f (diff) | |
download | nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar.gz nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar.bz2 nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar.lz nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar.xz nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.tar.zst nixlib-2760b2446242e7873962e5e6548bee95dfe35aff.zip |
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'lib')
-rw-r--r-- | lib/options.nix | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/options.nix b/lib/options.nix index 9446eca36778..01160b48ec01 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -127,7 +127,20 @@ rec { /* Helper functions. */ - showOption = concatStringsSep "."; + + # Convert an option, described as a list of the option parts in to a + # safe, human readable version. ie: + # + # (showOption ["foo" "bar" "baz"]) == "foo.bar.baz" + # (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" + showOption = parts: let + escapeOptionPart = part: + let + escaped = lib.strings.escapeNixString part; + in if escaped == "\"${part}\"" + then part + else escaped; + in (concatStringsSep ".") (map escapeOptionPart parts); showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files); unknownModule = "<unknown-file>"; |