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