48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
import ./make-test-python.nix ({ pkgs, ... }:
 | 
						|
 | 
						|
let
 | 
						|
  exampleScript = pkgs.writeTextFile {
 | 
						|
    name = "example.sh";
 | 
						|
    text = ''
 | 
						|
      #! ${pkgs.runtimeShell} -e
 | 
						|
 | 
						|
      while true; do
 | 
						|
          echo "Example script running" >&2
 | 
						|
          ${pkgs.coreutils}/bin/sleep 1
 | 
						|
      done
 | 
						|
    '';
 | 
						|
    executable = true;
 | 
						|
  };
 | 
						|
 | 
						|
  unitFile = pkgs.writeTextFile {
 | 
						|
    name = "example.service";
 | 
						|
    text = ''
 | 
						|
      [Unit]
 | 
						|
      Description=Example systemd service unit file
 | 
						|
 | 
						|
      [Service]
 | 
						|
      ExecStart=${exampleScript}
 | 
						|
 | 
						|
      [Install]
 | 
						|
      WantedBy=multi-user.target
 | 
						|
    '';
 | 
						|
  };
 | 
						|
in
 | 
						|
{
 | 
						|
  name = "systemd-unit-path";
 | 
						|
 | 
						|
  machine = { pkgs, lib, ... }: {
 | 
						|
    boot.extraSystemdUnitPaths = [ "/etc/systemd-rw/system" ];
 | 
						|
  };
 | 
						|
 | 
						|
  testScript = ''
 | 
						|
    machine.wait_for_unit("multi-user.target")
 | 
						|
    machine.succeed("mkdir -p /etc/systemd-rw/system")
 | 
						|
    machine.succeed(
 | 
						|
        "cp ${unitFile} /etc/systemd-rw/system/example.service"
 | 
						|
    )
 | 
						|
    machine.succeed("systemctl start example.service")
 | 
						|
    machine.succeed("systemctl status example.service | grep 'Active: active'")
 | 
						|
  '';
 | 
						|
})
 |