1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 python,
6 pyusb,
7 udevCheckHook,
8}:
9
10buildPythonPackage rec {
11 pname = "py3buddy";
12 version = "1.0";
13 pyproject = false; # manually installed
14
15 src = fetchFromGitHub {
16 owner = "armijnhemel";
17 repo = "py3buddy";
18 rev = version;
19 hash = "sha256-KJ0xGEXHY6o2074WFZ0u7gATS+wrrjyzanYretckWYk=";
20 };
21
22 dependencies = [ pyusb ];
23
24 nativeBuildInputs = [ udevCheckHook ];
25
26 dontConfigure = true;
27 dontBuild = true;
28
29 installPhase = ''
30 runHook preInstall
31
32 install -D py3buddy.py $out/${python.sitePackages}/py3buddy.py
33
34 runHook postInstall
35 '';
36
37 postInstall = ''
38 install -D 99-ibuddy.rules $out/lib/udev/rules.d/99-ibuddy.rules
39 '';
40
41 meta = {
42 description = "Code to work with the iBuddy MSN figurine";
43 homepage = "https://github.com/armijnhemel/py3buddy";
44 license = lib.licenses.mit;
45 maintainers = with lib.maintainers; [ prusnak ];
46 };
47}