42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
![]() |
import ./make-test-python.nix {
|
||
|
name = "systemd-template-override";
|
||
|
|
||
|
machine = { pkgs, lib, ... }: let
|
||
|
touchTmp = pkgs.writeTextFile {
|
||
|
name = "touch-tmp@.service";
|
||
|
text = ''
|
||
|
[Service]
|
||
|
Type=oneshot
|
||
|
ExecStart=${pkgs.coreutils}/bin/touch /tmp/%I
|
||
|
'';
|
||
|
destination = "/etc/systemd/system/touch-tmp@.service";
|
||
|
};
|
||
|
in {
|
||
|
systemd.packages = [ touchTmp ];
|
||
|
|
||
|
systemd.services."touch-tmp@forbidden" = {
|
||
|
serviceConfig.ExecStart = [ "" ''
|
||
|
${pkgs.coreutils}/bin/true
|
||
|
''];
|
||
|
};
|
||
|
|
||
|
systemd.services."touch-tmp@intercept" = {
|
||
|
serviceConfig.ExecStart = [ "" ''
|
||
|
${pkgs.coreutils}/bin/touch /tmp/renamed
|
||
|
''];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
testScript = ''
|
||
|
machine.wait_for_unit("default.target")
|
||
|
|
||
|
machine.succeed("systemctl start touch-tmp@normal")
|
||
|
machine.succeed("systemctl start touch-tmp@forbbidden")
|
||
|
machine.succeed("systemctl start touch-tmp@intercept")
|
||
|
|
||
|
machine.succeed("[ -e /tmp/normal ]")
|
||
|
machine.succeed("[ ! -e /tmp/forbidden ]")
|
||
|
machine.succeed("[ -e /tmp/renamed ]")
|
||
|
'';
|
||
|
}
|