ctucx.git: solax2mqtt

Publish data from Solax solar inverters via MQTT

commit 8e41c8b4d1475902ab5801c82f5fccab411d46ec
parent aa4a39a043ac3cff1733f3637851caf449a1b047
Author: Katja (ctucx) <git@ctu.cx>
Date: Wed, 5 Mar 2025 21:53:17 +0100

flake: refactor, remove `flake-utils` dependency
2 files changed, 46 insertions(+), 66 deletions(-)
M
flake.lock
|
16
----------------
M
flake.nix
|
96
++++++++++++++++++++++++++++++++++++++-----------------------------------------
diff --git a/flake.lock b/flake.lock
@@ -1,20 +1,5 @@
 {
   "nodes": {
-    "flake-utils": {
-      "locked": {
-        "lastModified": 1667395993,
-        "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
     "nixpkgs": {
       "locked": {
         "lastModified": 1719426051,

@@ -33,7 +18,6 @@
     },
     "root": {
       "inputs": {
-        "flake-utils": "flake-utils",
         "nixpkgs": "nixpkgs"
       }
     }
diff --git a/flake.nix b/flake.nix
@@ -1,55 +1,52 @@
 {
-  description = "Exporter for solax solar inverters to mqtt, written in nim";
-
-  inputs = {
-    flake-utils.url = "github:numtide/flake-utils";
-    nixpkgs.url     = "github:NixOS/nixpkgs/nixos-24.05";
-  };
-
-  outputs = { self, nixpkgs, flake-utils }: {
-
-    overlay = final: prev: {
-
-      solax2mqtt = (
-        let
-          nmqtt = final.fetchFromGitHub {
-            owner  = "zevv";
-            repo   = "nmqtt";
-            rev    = "v1.0.4";
-            sha256 = "1by0xyqz754dny19lf8rpkg42passnj0rs6rk3jr763m1zr803mc";
-          };
-
-        in final.buildNimPackage {
-          name        = "solax2mqtt";
-          src         = self;
-
-          nimFlags = [
-            "--path:${nmqtt}"
-          ];
 
-          nimRelease  = true;
-        }
-      );
-
-    };
+  description = "Exporter for solax solar inverters to mqtt, written in nim";
 
-  } // (flake-utils.lib.eachDefaultSystem (system:
-    let
-      pkgs = import nixpkgs {
-        inherit system;
-        overlays = [ self.overlay ];
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
+
+  outputs = inputs: let
+    forAllSystems = function:
+      inputs.nixpkgs.lib.genAttrs [
+        "x86_64-linux"
+        "aarch64-linux"
+        "aarch64-darwin"
+      ] (system: function (import inputs.nixpkgs {
+        system   = system;
+        overlays = [ inputs.self.overlays.default ];
+      }));
+
+  in {
+
+    packages = forAllSystems (pkgs: {
+      default    = pkgs.solax2mqtt;
+      solax2mqtt = pkgs.solax2mqtt;
+    });
+
+    apps = forAllSystems (pkgs: {
+      default.type    = "app";
+      default.program = "${pkgs.solax2mqtt}/bin/solax2mqtt";
+    });
+
+    overlays.default = final: prev: {
+      solax2mqtt = let
+        nmqtt = final.fetchFromGitHub {
+          owner  = "zevv";
+          repo   = "nmqtt";
+          rev    = "v1.0.4";
+          sha256 = "1by0xyqz754dny19lf8rpkg42passnj0rs6rk3jr763m1zr803mc";
+        };
+
+      in final.buildNimPackage {
+        name = "solax2mqtt";
+        src  = inputs.self;
+
+        nimRelease = true;
+        nimFlags   = [
+          "--path:${nmqtt}"
+        ];
       };
+    };
 
-    in rec {
-
-      packages.default    = pkgs.solax2mqtt;
-      packages.solax2mqtt = pkgs.solax2mqtt;
-
-      apps.default = {
-        type = "app";
-        program = "${pkgs.solax2mqtt}/bin/solax2mqtt";
-      };
+  };
 
-    }
-  ));
-}-
\ No newline at end of file
+}