From 56f1d99b161a8665b7df57984af5f76dc842be9b Mon Sep 17 00:00:00 2001 From: pennae Date: Thu, 2 Feb 2023 06:05:34 +0100 Subject: [PATCH] nixos-render-docs: factor out sorting of options list --- .../src/nixos_render_docs/options.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py index 68c753507e99..9603b5726897 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py @@ -40,6 +40,12 @@ class BaseConverter(Converter): self._id_prefix = id_prefix self._markdown_by_default = markdown_by_default + def _sorted_options(self) -> list[tuple[str, RenderedOption]]: + keys = list(self._options.keys()) + keys.sort(key=lambda opt: [ (0 if p.startswith("enable") else 1 if p.startswith("package") else 2, p) + for p in self._options[opt].loc ]) + return [ (k, self._options[k]) for k in keys ] + def _format_decl_def_loc(self, loc: OptionLoc) -> tuple[Optional[str], str]: # locations can be either plain strings (specific to nixpkgs), or attrsets # { name = "foo/bar.nix"; url = "https://github.com/....."; } @@ -215,10 +221,6 @@ class DocBookConverter(BaseConverter): return [ "" ] def finalize(self) -> str: - keys = list(self._options.keys()) - keys.sort(key=lambda opt: [ (0 if p.startswith("enable") else 1 if p.startswith("package") else 2, p) - for p in self._options[opt].loc ]) - result = [] result.append('') @@ -235,7 +237,7 @@ class DocBookConverter(BaseConverter): f' xml:id="{self._varlist_id}">', ] - for name in keys: + for (name, opt) in self._sorted_options(): id = make_xml_id(self._id_prefix + name) result += [ "", @@ -244,7 +246,7 @@ class DocBookConverter(BaseConverter): f""), "" ] - result += self._options[name].lines + result += opt.lines result += [ "", ""