1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication (finalAttrs: {
name = "its-g5-bridge";
version = "0.2.3";
pyproject = true;
src = fetchFromGitHub {
owner = "pit711";
repo = "v2x2map";
rev = "v${finalAttrs.version}";
hash = "sha256-tIeOICvW8pNA+dR3gzrOoJozWy8tCecOu3Gpz0k0Mrk=";
};
postPatch = ''
substituteInPlace ./bridge/dashboard_server.py \
--replace-fail '_HTML_PATH = os.path.join(_HERE, "dashboard.html")' "_HTML_PATH = \"''${out}/share/its-g5-bridge/dashboard.html\""
'';
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
pyserial
paho-mqtt
];
preBuild = ''
cat > pyproject.toml << EOF
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "bridge"}
[project]
name = "its-g5-bridge"
version = "${finalAttrs.version}"
dependencies = [
"pyserial",
"paho-mqtt",
]
[project.scripts]
its-g5-bridge = "its_g5_bridge:main"
[tool.setuptools.data-files]
"share/its-g5-bridge" = [
"./bridge/dashboard.html",
]
EOF
'';
})