docs/packages/nixos-options/default.nix

56 lines
1.4 KiB
Nix
Raw Normal View History

2024-07-20 21:55:49 +00:00
{
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;
in
stdenv.mkDerivation {
pname = "nixos-options";
inherit version;
src = inputs.nixpkgs;
installPhase = ''
mkdir $out
cp -r ${options} $out/options
'';
}