at 17.09-beta 2.2 kB view raw
1# This module generates nixos-install, nixos-rebuild, 2# nixos-generate-config, etc. 3 4{ config, pkgs, modulesPath, ... }: 5 6let 7 cfg = config.installer; 8 9 makeProg = args: pkgs.substituteAll (args // { 10 dir = "bin"; 11 isExecutable = true; 12 }); 13 14 nixos-build-vms = makeProg { 15 name = "nixos-build-vms"; 16 src = ./nixos-build-vms/nixos-build-vms.sh; 17 }; 18 19 nixos-prepare-root = makeProg { 20 name = "nixos-prepare-root"; 21 src = ./nixos-prepare-root.sh; 22 23 nix = pkgs.nixUnstable; 24 inherit (pkgs) perl pathsFromGraph rsync utillinux coreutils; 25 }; 26 27 nixos-install = makeProg { 28 name = "nixos-install"; 29 src = ./nixos-install.sh; 30 31 inherit (pkgs) perl pathsFromGraph rsync; 32 nix = config.nix.package.out; 33 cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 34 root_uid = config.ids.uids.root; 35 nixbld_gid = config.ids.gids.nixbld; 36 prepare_root = nixos-prepare-root; 37 38 nixClosure = pkgs.runCommand "closure" 39 { exportReferencesGraph = ["refs" config.nix.package.out]; } 40 "cp refs $out"; 41 }; 42 43 nixos-rebuild = 44 let fallback = import ./nix-fallback-paths.nix; in 45 makeProg { 46 name = "nixos-rebuild"; 47 src = ./nixos-rebuild.sh; 48 nix = config.nix.package.out; 49 nix_x86_64_linux = fallback.x86_64-linux; 50 nix_i686_linux = fallback.i686-linux; 51 }; 52 53 nixos-generate-config = makeProg { 54 name = "nixos-generate-config"; 55 src = ./nixos-generate-config.pl; 56 path = [ pkgs.btrfs-progs ]; 57 perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; 58 inherit (config.system) nixosRelease; 59 }; 60 61 nixos-option = makeProg { 62 name = "nixos-option"; 63 src = ./nixos-option.sh; 64 }; 65 66 nixos-version = makeProg { 67 name = "nixos-version"; 68 src = ./nixos-version.sh; 69 inherit (config.system) nixosVersion nixosCodeName nixosRevision; 70 }; 71 72in 73 74{ 75 76 config = { 77 78 environment.systemPackages = 79 [ nixos-build-vms 80 nixos-prepare-root 81 nixos-install 82 nixos-rebuild 83 nixos-generate-config 84 nixos-option 85 nixos-version 86 ]; 87 88 system.build = { 89 inherit nixos-install nixos-prepare-root nixos-generate-config nixos-option nixos-rebuild; 90 }; 91 92 }; 93 94}