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