Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 bitvector-for-humans, 4 buildPythonPackage, 5 fetchFromGitHub, 6 hidapi, 7 loguru, 8 poetry-core, 9 pyserial, 10 pytest-mock, 11 pytestCheckHook, 12 pythonOlder, 13 typer, 14 webcolors, 15 udevCheckHook, 16}: 17 18buildPythonPackage rec { 19 pname = "busylight-for-humans"; 20 version = "0.35.2"; 21 pyproject = true; 22 23 disabled = pythonOlder "3.9"; 24 25 src = fetchFromGitHub { 26 owner = "JnyJny"; 27 repo = "busylight"; 28 tag = "v${version}"; 29 hash = "sha256-0jmaVMN4wwqoO5wGMaV4kJefNUPOuJpWbsqHcZZ0Nh4="; 30 }; 31 32 build-system = [ poetry-core ]; 33 34 dependencies = [ 35 bitvector-for-humans 36 hidapi 37 loguru 38 pyserial 39 typer 40 webcolors 41 ]; 42 43 nativeCheckInputs = [ 44 pytestCheckHook 45 pytest-mock 46 udevCheckHook 47 ]; 48 49 disabledTestPaths = [ "tests/test_pydantic_models.py" ]; 50 51 pythonImportsCheck = [ "busylight" ]; 52 53 postInstall = '' 54 mkdir -p $out/lib/udev/rules.d 55 $out/bin/busylight udev-rules -o $out/lib/udev/rules.d/99-busylight.rules 56 ''; 57 58 meta = with lib; { 59 description = "Control USB connected presence lights from multiple vendors via the command-line or web API"; 60 homepage = "https://github.com/JnyJny/busylight"; 61 changelog = "https://github.com/JnyJny/busylight/releases/tag/${version}"; 62 license = licenses.asl20; 63 teams = [ teams.helsinki-systems ]; 64 mainProgram = "busylight"; 65 }; 66}