at 16.09-beta 1.8 kB view raw
1# This module generates nixos-install, nixos-rebuild, 2# nixos-generate-config, etc. 3 4{ config, pkgs, modulesPath, ... }: 5 6let 7 8 cfg = config.installer; 9 10 makeProg = args: pkgs.substituteAll (args // { 11 dir = "bin"; 12 isExecutable = true; 13 }); 14 15 nixos-build-vms = makeProg { 16 name = "nixos-build-vms"; 17 src = ./nixos-build-vms/nixos-build-vms.sh; 18 }; 19 20 nixos-install = makeProg { 21 name = "nixos-install"; 22 src = ./nixos-install.sh; 23 24 inherit (pkgs) perl pathsFromGraph rsync; 25 nix = config.nix.package.out; 26 cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; 27 root_uid = config.ids.uids.root; 28 nixbld_gid = config.ids.gids.nixbld; 29 30 nixClosure = pkgs.runCommand "closure" 31 { exportReferencesGraph = ["refs" config.nix.package.out]; } 32 "cp refs $out"; 33 }; 34 35 nixos-rebuild = makeProg { 36 name = "nixos-rebuild"; 37 src = ./nixos-rebuild.sh; 38 nix = config.nix.package.out; 39 }; 40 41 nixos-generate-config = makeProg { 42 name = "nixos-generate-config"; 43 src = ./nixos-generate-config.pl; 44 path = [ pkgs.btrfs-progs ]; 45 perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; 46 inherit (config.system) nixosRelease; 47 }; 48 49 nixos-option = makeProg { 50 name = "nixos-option"; 51 src = ./nixos-option.sh; 52 }; 53 54 nixos-version = makeProg { 55 name = "nixos-version"; 56 src = ./nixos-version.sh; 57 inherit (config.system) nixosVersion nixosCodeName nixosRevision; 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 ]; 74 75 system.build = { 76 inherit nixos-install nixos-generate-config nixos-option nixos-rebuild; 77 }; 78 79 }; 80 81}