52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, ... }:
 | 
						|
 | 
						|
with pkgs.lib;
 | 
						|
 | 
						|
let
 | 
						|
 | 
						|
  initScriptBuilder = pkgs.substituteAll {
 | 
						|
    src = ./init-script-builder.sh;
 | 
						|
    isExecutable = true;
 | 
						|
    inherit (pkgs) bash;
 | 
						|
    path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
 | 
						|
  };
 | 
						|
 | 
						|
in
 | 
						|
 | 
						|
{
 | 
						|
 | 
						|
  ###### interface
 | 
						|
 | 
						|
  options = {
 | 
						|
 | 
						|
    boot.loader.initScript = {
 | 
						|
 | 
						|
      enable = mkOption {
 | 
						|
        default = false;
 | 
						|
        description = ''
 | 
						|
          Some systems require a /sbin/init script which is started.
 | 
						|
          Or having it makes starting NixOS easier.
 | 
						|
          This applies to some kind of hosting services and user mode linux.
 | 
						|
 | 
						|
          Additionaly this script will create
 | 
						|
          /boot/init-other-configurations-contents.txt containing
 | 
						|
          contents of remaining configurations. You can copy paste them into
 | 
						|
          /sbin/init manually running a recue system or such.
 | 
						|
        '';
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
  };
 | 
						|
 | 
						|
 | 
						|
  ###### implementation
 | 
						|
 | 
						|
  config = {
 | 
						|
 | 
						|
    system.build.initScriptBuilder =
 | 
						|
       if config.boot.loader.initScript.enable then initScriptBuilder else "";
 | 
						|
 | 
						|
  };
 | 
						|
 | 
						|
}
 |