1{ lib, pkgs, ... }:
2
3let
4 testScript = ''
5 start_all()
6
7 machine.wait_for_unit("multi-user.target")
8
9 # Check that gopro-tool is installed
10 machine.succeed("which gopro-tool")
11
12 # Check that the v4l2loopback module is available
13 machine.succeed("lsmod | grep v4l2loopback || echo 'Module not found'")
14
15 # Check that VLC is installed
16 machine.succeed("which vlc")
17 '';
18in
19{
20 name = "gopro-tool";
21 meta.maintainers = with lib.maintainers; [ ZMon3y ];
22 nodes.machine =
23 { config, pkgs, ... }:
24 {
25 # Ensure dependencies are installed
26 environment.systemPackages = with pkgs; [
27 gopro-tool
28 vlc
29 ];
30
31 # Load kernel module for testing
32 boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
33
34 # Enable module loading
35 boot.kernelModules = [ "v4l2loopback" ];
36 };
37
38 testScript = testScript;
39}