Files
nix-config/packages/homeassistant/ha-nanokvm/default.nix
mjallen18 27790713be upds
2026-03-20 17:24:20 -05:00

97 lines
2.3 KiB
Nix

{
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
let
python3Packages = home-assistant.python.pkgs;
python-nanokvm = python3Packages.buildPythonPackage rec {
pname = "nanokvm";
version = "0.1.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "puddly";
repo = "python-${pname}";
rev = "v${version}";
sha256 = "sha256-vIxvQtjaInnWQce7syiOWpP2kaw0IVw03HPovnB2J5M=";
};
prePatch = ''
rm -f pyproject.toml
cat > pyproject.toml << 'EOF'
[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "nanokvm"
version = "0.1.0"
description = "Async client for NanoKVM devices."
urls = {repository = "https://github.com/puddly/python-nanokvm"}
authors = [
{name = "puddly", email = "puddly3@gmail.com"}
]
readme = "README.md"
license = {text = "Apache-2.0"}
requires-python = ">=3.11"
dependencies = [
"aiohttp",
"cryptography",
"yarl",
"pillow",
"pydantic",
"paramiko",
]
[tool.setuptools.packages.find]
exclude = ["tests", "tests.*"]
EOF
'';
buildInputs = with python3Packages; [
setuptools
];
propagatedBuildInputs = with python3Packages; [
aiohttp
cryptography
yarl
pillow
pydantic
paramiko
];
doCheck = false;
};
in
buildHomeAssistantComponent rec {
owner = "Wouter0100";
domain = "nanokvm";
version = "v0.0.4";
src = fetchFromGitHub {
owner = owner;
repo = "homeassistant-nanokvm";
rev = "bdd2ca39d8050e4b38bb7917ee4034f2fcd49471";
hash = "sha256-S6g9mfPEixqeGQkXVK8PZJ/dnEC5ThKtbELAIAhCANM=";
};
propagatedBuildInputs = [
python-nanokvm
];
postPatch = ''
substituteInPlace custom_components/nanokvm/manifest.json \
--replace-fail '"nanokvm>=0.0.4"' '"nanokvm"'
'';
meta = {
changelog = "https://github.com/Wouter0100/homeassistant-nanokvm/releases/tag/${version}";
description = "This integration allows you to control and monitor your Sipeed NanoKVM device from Home Assistant.";
homepage = "https://github.com/Wouter0100/homeassistant-nanokvm";
maintainers = [ ];
};
}