74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 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;
 | 
						|
    nix = config.nix.package;
 | 
						|
 | 
						|
    nixClosure = pkgs.runCommand "closure"
 | 
						|
      { exportReferencesGraph = ["refs" config.nix.package]; }
 | 
						|
      "cp refs $out";
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-rebuild = makeProg {
 | 
						|
    name = "nixos-rebuild";
 | 
						|
    src = ./nixos-rebuild.sh;
 | 
						|
    nix = config.nix.package;
 | 
						|
  };
 | 
						|
 | 
						|
  nixos-generate-config = makeProg {
 | 
						|
    name = "nixos-generate-config";
 | 
						|
    src = ./nixos-generate-config.pl;
 | 
						|
    path = [ pkgs.btrfsProgs ];
 | 
						|
    perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
 | 
						|
  };
 | 
						|
 | 
						|
  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;
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |