86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
# This module generates nixos-install, nixos-rebuild,
 | 
						|
# nixos-generate-config, etc.
 | 
						|
 | 
						|
{ config, pkgs, modulesPath, ... }:
 | 
						|
 | 
						|
let
 | 
						|
 | 
						|
  cfg = config.installer;
 | 
						|
 | 
						|
  makeProg = args: pkgs.substituteAll (args // {
 | 
						|
    dir = "bin";
 | 
						|
    isExecutable = true;
 | 
						|
  });
 | 
						|
 | 
						|
  nixos-build-vms = makeProg {
 | 
						|
    name = "nixos-build-vms";
 | 
						|
    src = ./nixos-build-vms/nixos-build-vms.sh;
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-install = makeProg {
 | 
						|
    name = "nixos-install";
 | 
						|
    src = ./nixos-install.sh;
 | 
						|
 | 
						|
    inherit (pkgs) perl pathsFromGraph rsync;
 | 
						|
    nix = config.nix.package.out;
 | 
						|
    cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
 | 
						|
    root_uid = config.ids.uids.root;
 | 
						|
    nixbld_gid = config.ids.gids.nixbld;
 | 
						|
 | 
						|
    nixClosure = pkgs.runCommand "closure"
 | 
						|
      { exportReferencesGraph = ["refs" config.nix.package.out]; }
 | 
						|
      "cp refs $out";
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-rebuild =
 | 
						|
    let fallback = import ./nix-fallback-paths.nix; in
 | 
						|
    makeProg {
 | 
						|
      name = "nixos-rebuild";
 | 
						|
      src = ./nixos-rebuild.sh;
 | 
						|
      nix = config.nix.package.out;
 | 
						|
      nix_x86_64_linux = fallback.x86_64-linux;
 | 
						|
      nix_i686_linux = fallback.i686-linux;
 | 
						|
    };
 | 
						|
 | 
						|
  nixos-generate-config = makeProg {
 | 
						|
    name = "nixos-generate-config";
 | 
						|
    src = ./nixos-generate-config.pl;
 | 
						|
    path = [ pkgs.btrfs-progs ];
 | 
						|
    perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
 | 
						|
    inherit (config.system) nixosRelease;
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-option = makeProg {
 | 
						|
    name = "nixos-option";
 | 
						|
    src = ./nixos-option.sh;
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-version = makeProg {
 | 
						|
    name = "nixos-version";
 | 
						|
    src = ./nixos-version.sh;
 | 
						|
    inherit (config.system) nixosVersion nixosCodeName nixosRevision;
 | 
						|
  };
 | 
						|
 | 
						|
in
 | 
						|
 | 
						|
{
 | 
						|
 | 
						|
  config = {
 | 
						|
 | 
						|
    environment.systemPackages =
 | 
						|
      [ nixos-build-vms
 | 
						|
        nixos-install
 | 
						|
        nixos-rebuild
 | 
						|
        nixos-generate-config
 | 
						|
        nixos-option
 | 
						|
        nixos-version
 | 
						|
      ];
 | 
						|
 | 
						|
    system.build = {
 | 
						|
      inherit nixos-install nixos-generate-config nixos-option nixos-rebuild;
 | 
						|
    };
 | 
						|
 | 
						|
  };
 | 
						|
 | 
						|
}
 |