52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
|
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||
|
|
||
|
let
|
||
|
seatd-test = pkgs.writeShellApplication {
|
||
|
name = "seatd-client-pid";
|
||
|
text = ''
|
||
|
journalctl -u seatd --no-pager -b | while read -r line; do
|
||
|
case "$line" in
|
||
|
*"New client connected"*)
|
||
|
line="''${line##*pid: }"
|
||
|
pid="''${line%%,*}"
|
||
|
;;
|
||
|
*"Opened client"*)
|
||
|
echo "$pid"
|
||
|
exit
|
||
|
esac
|
||
|
done;
|
||
|
'';
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
name = "seatd";
|
||
|
meta.maintainers = with lib.maintainers; [ sinanmohd ];
|
||
|
|
||
|
nodes.machine = { ... }: {
|
||
|
imports = [ ./common/user-account.nix ];
|
||
|
services.getty.autologinUser = "alice";
|
||
|
users.users.alice.extraGroups = [ "seat" "wheel" ];
|
||
|
|
||
|
fonts.enableDefaultPackages = true;
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
dwl
|
||
|
foot
|
||
|
seatd-test
|
||
|
];
|
||
|
|
||
|
programs.bash.loginShellInit = ''
|
||
|
[ "$(tty)" = "/dev/tty1" ] &&
|
||
|
dwl -s 'foot touch /tmp/foot_started'
|
||
|
'';
|
||
|
|
||
|
hardware.opengl.enable = true;
|
||
|
virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
|
||
|
services.seatd.enable = true;
|
||
|
};
|
||
|
|
||
|
testScript = ''
|
||
|
machine.wait_for_file("/tmp/foot_started")
|
||
|
machine.succeed("test $(seatd-client-pid) = $(pgrep dwl)")
|
||
|
'';
|
||
|
})
|