diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2023-02-21 18:01:45 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-21 18:01:45 +0000 |
commit | 9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb (patch) | |
tree | 01a4ca41d984d9c31a225a7fd88a2db9a5a1819f /nixos | |
parent | 18cb356d03103fa2e25b0acc6ec2136f256fb5ba (diff) | |
parent | fd8dd0c96688719500a12db7184301d1fa6a7bc1 (diff) | |
download | nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar.gz nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar.bz2 nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar.lz nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar.xz nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.tar.zst nixlib-9acd1eb7fd2fcb1dbaa6f6bdbec2569a49f3dbfb.zip |
Merge staging-next into staging
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/lib/make-options-doc/default.nix | 22 | ||||
-rw-r--r-- | nixos/lib/make-options-doc/generateDoc.py | 112 | ||||
-rw-r--r-- | nixos/modules/hardware/flipperzero.nix | 18 | ||||
-rw-r--r-- | nixos/modules/module-list.nix | 1 |
4 files changed, 33 insertions, 120 deletions
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index 50fb9ede08de..a2385582a014 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -91,18 +91,24 @@ let in rec { inherit optionsNix; - optionsAsciiDoc = pkgs.runCommand "options.adoc" {} '' - ${pkgs.python3Minimal}/bin/python ${./generateDoc.py} \ - --format asciidoc \ + optionsAsciiDoc = pkgs.runCommand "options.adoc" { + nativeBuildInputs = [ pkgs.nixos-render-docs ]; + } '' + nixos-render-docs -j $NIX_BUILD_CORES options asciidoc \ + --manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \ + --revision ${lib.escapeShellArg revision} \ ${optionsJSON}/share/doc/nixos/options.json \ - > $out + $out ''; - optionsCommonMark = pkgs.runCommand "options.md" {} '' - ${pkgs.python3Minimal}/bin/python ${./generateDoc.py} \ - --format commonmark \ + optionsCommonMark = pkgs.runCommand "options.md" { + nativeBuildInputs = [ pkgs.nixos-render-docs ]; + } '' + nixos-render-docs -j $NIX_BUILD_CORES options commonmark \ + --manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \ + --revision ${lib.escapeShellArg revision} \ ${optionsJSON}/share/doc/nixos/options.json \ - > $out + $out ''; optionsJSON = pkgs.runCommand "options.json" diff --git a/nixos/lib/make-options-doc/generateDoc.py b/nixos/lib/make-options-doc/generateDoc.py deleted file mode 100644 index 07884ed657e4..000000000000 --- a/nixos/lib/make-options-doc/generateDoc.py +++ /dev/null @@ -1,112 +0,0 @@ -import argparse -import json -import sys - -formats = ['commonmark', 'asciidoc'] - -parser = argparse.ArgumentParser( - description = 'Generate documentation for a set of JSON-formatted NixOS options' -) -parser.add_argument( - 'nix_options_path', - help = 'a path to a JSON file containing the NixOS options' -) -parser.add_argument( - '-f', - '--format', - choices = formats, - required = True, - help = f'the documentation format to generate' -) - -args = parser.parse_args() - -class OptionsEncoder(json.JSONEncoder): - def encode(self, obj): - # Unpack literal expressions and other Nix types. - # Don't escape the strings: they were escaped when initially serialized to JSON. - if isinstance(obj, dict): - _type = obj.get('_type') - if _type is not None: - if _type == 'literalExpression' or _type == 'literalDocBook': - return obj['text'] - - if _type == 'derivation': - return obj['name'] - - raise Exception(f'Unexpected type `{_type}` in {json.dumps(obj)}') - - return super().encode(obj) - -def generate_commonmark(options): - for (name, value) in options.items(): - print('##', name.replace('<', '<').replace('>', '>')) - print(value['description']) - print() - if 'type' in value: - print('*_Type_*') - print ('```') - print(value['type']) - print ('```') - print() - print() - if 'default' in value: - print('*_Default_*') - print('```') - print(json.dumps(value['default'], cls=OptionsEncoder, ensure_ascii=False, separators=(',', ':'))) - print('```') - print() - print() - if 'example' in value: - print('*_Example_*') - print('```') - print(json.dumps(value['example'], cls=OptionsEncoder, ensure_ascii=False, separators=(',', ':'))) - print('```') - print() - print() - -# TODO: declarations: link to github -def generate_asciidoc(options): - for (name, value) in options.items(): - print(f'== {name}') - print() - print(value['description']) - print() - print('[discrete]') - print('=== details') - print() - print(f'Type:: {value["type"]}') - if 'default' in value: - print('Default::') - print('+') - print('----') - print(json.dumps(value['default'], cls=OptionsEncoder, ensure_ascii=False, separators=(',', ':'))) - print('----') - print() - else: - print('No Default:: {blank}') - if value['readOnly']: - print('Read Only:: {blank}') - else: - print() - if 'example' in value: - print('Example::') - print('+') - print('----') - print(json.dumps(value['example'], cls=OptionsEncoder, ensure_ascii=False, separators=(',', ':'))) - print('----') - print() - else: - print('No Example:: {blank}') - print() - -with open(args.nix_options_path) as nix_options_json: - options = json.load(nix_options_json) - - if args.format == 'commonmark': - generate_commonmark(options) - elif args.format == 'asciidoc': - generate_asciidoc(options) - else: - raise Exception(f'Unsupported documentation format `--format {args.format}`') - diff --git a/nixos/modules/hardware/flipperzero.nix b/nixos/modules/hardware/flipperzero.nix new file mode 100644 index 000000000000..82f9b76fa3a7 --- /dev/null +++ b/nixos/modules/hardware/flipperzero.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.hardware.flipperzero; + +in + +{ + options.hardware.flipperzero.enable = mkEnableOption (mdDoc "udev rules and software for Flipper Zero devices"); + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.qFlipper ]; + services.udev.packages = [ pkgs.qFlipper ]; + }; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4a0e52f483c2..a19b0f7ea908 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -53,6 +53,7 @@ ./hardware/cpu/intel-sgx.nix ./hardware/device-tree.nix ./hardware/digitalbitbox.nix + ./hardware/flipperzero.nix ./hardware/flirc.nix ./hardware/gkraken.nix ./hardware/gpgsmartcards.nix |