commit d1baf84477d286100101951deecff6ad19325003
parent 08a811ac1423b8581a2f4e3026b68e6c5224e10f
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date: Thu, 20 Feb 2025 23:17:27 +0400
Add mqttwarn
Diffstat:
3 files changed, 91 insertions(+), 0 deletions(-)
diff --git a/pkgs/default.nix b/pkgs/default.nix
@@ -448,6 +448,7 @@ lib.makeScope newScope (
mqtt-stats = callPackage ./mqtt/mqtt-stats { };
mqtt-to-influxdb = callPackage ./mqtt/mqtt-to-influxdb { };
mqtt-to-influxdb-forwarder = callPackage ./mqtt/mqtt-to-influxdb-forwarder { };
+ mqttwarn = callPackage ./mqtt/mqttwarn { };
nanosdk = callPackage ./mqtt/nanosdk { };
pytest-mqtt = callPackage ./mqtt/pytest-mqtt { };
rmqtt = callPackage ./mqtt/rmqtt { };
diff --git a/pkgs/mqtt/mqttwarn/default.nix b/pkgs/mqtt/mqttwarn/default.nix
@@ -0,0 +1,74 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ python3Packages,
+ substituteAll,
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mqttwarn";
+ version = "0.35.0";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "mqtt-tools";
+ repo = "mqttwarn";
+ tag = version;
+ hash = "sha256-jdQNCmfGs1k52VKzcF132mmUSWkcdcsjx+AHxM+MRdw=";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./version.patch;
+ inherit version;
+ })
+ ];
+
+ build-system = with python3Packages; [
+ setuptools
+ versioningit
+ ];
+
+ dependencies = with python3Packages; [
+ attrs
+ docopt
+ funcy
+ future
+ jinja2
+ paho-mqtt
+ requests
+ six
+ ];
+
+ pythonRelaxDeps = [
+ "attrs"
+ "future"
+ "paho-mqtt"
+ ];
+
+ optional-dependencies = with python3Packages; {
+ apprise = [ apprise ];
+ celery = [ celery ];
+ chromecast = [ pychromecast ];
+ dnsupdate = [ dnspython ];
+ serial = [ pyserial ];
+ ssh = [ paramiko ];
+ tootpaste = [ mastodon-py ];
+ websocket = [ websocket-client ];
+ };
+
+ doCheck = false;
+
+ nativeCheckInputs = [
+ python3Packages.pytestCheckHook
+ ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+ meta = {
+ description = "A highly configurable MQTT message router, where the routing targets are notification plugins";
+ homepage = "https://guthub.com/mqtt-tools/mqttwarn";
+ license = lib.licenses.epl20;
+ maintainers = [ lib.maintainers.sikmir ];
+ mainProgram = "mqttwarn";
+ };
+}
diff --git a/pkgs/mqtt/mqttwarn/version.patch b/pkgs/mqtt/mqttwarn/version.patch
@@ -0,0 +1,16 @@
+diff --git i/pyproject.toml w/pyproject.toml
+index 29498ae..51c9406 100644
+--- i/pyproject.toml
++++ w/pyproject.toml
+@@ -11,10 +11,7 @@ build-backend = "setuptools.build_meta"
+
+
+ [tool.versioningit]
+-
+-[tool.versioningit.vcs]
+-method = "git"
+-default-tag = "0.0.0"
++default-version = "@version@"
+
+
+ # =========================