{ lib, pkgs, inputs, stdenv, supportedSystems ? [ "x86_64-linux" ], }: with import "${inputs.nixpkgs}/pkgs/top-level/release-lib.nix" { inherit supportedSystems; }; let version = "nixos-unstable"; versionSuffix = "pre${toString pkgs.revCount}.${pkgs.shortRev}"; buildFromConfig = module: sel: forAllSystems ( system: lib.hydraJob ( sel (import "${inputs.nixpkgs}/nixos/lib/eval-config.nix" { inherit system; modules = [ module ( { config, ... }: { system.nixos.versionSuffix = versionSuffix; system.nixos.revision = pkgs.rev or pkgs.shortRev; # At creation time we do not have state yet, so just default to latest. system.stateVersion = config.system.nixos.version; fileSystems."/".device = mkDefault "/dev/sda1"; boot.loader.grub.device = mkDefault "/dev/sda"; } ) ]; }).config ) ); options = (buildFromConfig (_: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux; customPython = pkgs.python312.withPackages (ps: [ ps.jq ps.rich ]); in stdenv.mkDerivation { pname = "nixos-options"; inherit version; src = ./.; nativeBuildInputs = [ customPython ]; buildPhase = '' ${customPython.interpreter} ./gen-options-md.py ${options}/share/doc/nixos/options.json ''; installPhase = '' mkdir $out cp -r ./nixos-docs/* $out/ rm -rf $out/_module.md ''; }