diff options
author | Jan Malakhovski <oxij@oxij.org> | 2016-04-20 21:46:02 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2017-12-07 21:26:34 +0000 |
commit | 182463dc79bb8dd4ca09ae54e8fcc1637d501c6a (patch) | |
tree | 6419f89618db00b3d4873a930fab3b6c5134eb36 /nixos | |
parent | bccab965b9226e7d515e1ee1cdf47bb32d1df63d (diff) | |
download | nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar.gz nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar.bz2 nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar.lz nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar.xz nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.tar.zst nixlib-182463dc79bb8dd4ca09ae54e8fcc1637d501c6a.zip |
nixos/doc: push all the `enable*' and `package*` options to the top of their option group
Why? Because this way configuration.nix(5) can be read linearly. Before: > virtualisation.xen.bootParams > ... > virtualisation.xen.enable > ... > virtualisation.xen.package > ... After: > virtualisation.xen.enable > virtualisation.xen.package > virtualisation.xen.bootParams > ...
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/default.nix | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 9bc83be66104..9a96f201a397 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -32,8 +32,22 @@ let prefixesToStrip = map (p: "${toString p}/") ([ ../../.. ] ++ extraSources); stripAnyPrefixes = lib.flip (lib.fold lib.removePrefix) prefixesToStrip; + # Custom "less" that pushes up all the things ending in ".enable*" + # and ".package" + optionListLess = a: b: + let + splt = lib.splitString "."; + ise = lib.hasPrefix "enable"; + isp = lib.hasPrefix "package"; + cmp = lib.splitByAndCompare ise lib.compare + (lib.splitByAndCompare isp lib.compare lib.compare); + in lib.compareLists cmp (splt a) (splt b) < 0; + + # Customly sort option list for the man page. + optionsList'' = lib.sort (a: b: optionListLess a.name b.name) optionsList'; + # Convert the list of options into an XML file. - optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList'); + optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList''); optionsDocBook = runCommand "options-db.xml" {} '' optionsXML=${optionsXML} |