at 18.03-beta 1.8 kB view raw
1# This module generates nixos-install, nixos-rebuild, 2# nixos-generate-config, etc. 3 4{ config, lib, pkgs, modulesPath, ... }: 5 6with lib; 7 8let 9 cfg = config.installer; 10 11 makeProg = args: pkgs.substituteAll (args // { 12 dir = "bin"; 13 isExecutable = true; 14 }); 15 16 nixos-build-vms = makeProg { 17 name = "nixos-build-vms"; 18 src = ./nixos-build-vms/nixos-build-vms.sh; 19 }; 20 21 nixos-install = makeProg { 22 name = "nixos-install"; 23 src = ./nixos-install.sh; 24 nix = config.nix.package.out; 25 path = makeBinPath [ nixos-enter ]; 26 }; 27 28 nixos-rebuild = 29 let fallback = import ./nix-fallback-paths.nix; in 30 makeProg { 31 name = "nixos-rebuild"; 32 src = ./nixos-rebuild.sh; 33 nix = config.nix.package.out; 34 nix_x86_64_linux = fallback.x86_64-linux; 35 nix_i686_linux = fallback.i686-linux; 36 }; 37 38 nixos-generate-config = makeProg { 39 name = "nixos-generate-config"; 40 src = ./nixos-generate-config.pl; 41 path = [ pkgs.btrfs-progs ]; 42 perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; 43 inherit (config.system.nixos) release; 44 }; 45 46 nixos-option = makeProg { 47 name = "nixos-option"; 48 src = ./nixos-option.sh; 49 }; 50 51 nixos-version = makeProg { 52 name = "nixos-version"; 53 src = ./nixos-version.sh; 54 inherit (config.system.nixos) version codeName revision; 55 }; 56 57 nixos-enter = makeProg { 58 name = "nixos-enter"; 59 src = ./nixos-enter.sh; 60 }; 61 62in 63 64{ 65 66 config = { 67 68 environment.systemPackages = 69 [ nixos-build-vms 70 nixos-install 71 nixos-rebuild 72 nixos-generate-config 73 nixos-option 74 nixos-version 75 nixos-enter 76 ]; 77 78 system.build = { 79 inherit nixos-install nixos-prepare-root nixos-generate-config nixos-option nixos-rebuild nixos-enter; 80 }; 81 82 }; 83 84}