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'")
 | |
|   '';
 | |
| })
 | 
