ctucx.git: gpx-map

render gpx files to tiles and display them on a map

commit 368358b4facb8bc55311250926eef78b0328b9a0
parent 35a87d4f2e28a48f7477b28447918fe95c361085
Author: Katja (ctucx) <git@ctu.cx>
Date: Wed, 5 Mar 2025 20:22:24 +0100

flake: refactor, remove `flake-utils` dependency
2 files changed, 42 insertions(+), 75 deletions(-)
M
flake.lock
|
40
+++-------------------------------------
M
flake.nix
|
77
+++++++++++++++++++++++++++++++++++++++--------------------------------------
diff --git a/flake.lock b/flake.lock
@@ -1,30 +1,12 @@
 {
   "nodes": {
-    "flake-utils": {
-      "inputs": {
-        "systems": "systems"
-      },
-      "locked": {
-        "lastModified": 1694529238,
-        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1701156937,
-        "narHash": "sha256-jpMJOFvOTejx211D8z/gz0ErRtQPy6RXxgD2ZB86mso=",
+        "lastModified": 1720535198,
+        "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7c4c20509c4363195841faa6c911777a134acdf3",
+        "rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5",
         "type": "github"
       },
       "original": {

@@ -36,24 +18,8 @@
     },
     "root": {
       "inputs": {
-        "flake-utils": "flake-utils",
         "nixpkgs": "nixpkgs"
       }
-    },
-    "systems": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
     }
   },
   "root": "root",
diff --git a/flake.nix b/flake.nix
@@ -1,15 +1,44 @@
 {
-  description = "render gpx files to tiles and display them on a map";
 
-  inputs = {
-    flake-utils.url = "github:numtide/flake-utils";
-    nixpkgs.url     = "github:NixOS/nixpkgs/nixos-23.11";
-  };
+  description = "render gpx files to tiles and display them on a map";
 
-  outputs = { self, nixpkgs, flake-utils }: {
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
+
+  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: {
+      generateTilesFromGPX = pkgs.generateTilesFromGPX;
+      datamaps             = pkgs.datamaps;
+      gpx-map              = pkgs.gpx-map;
+    });
+ 
+    devShells = forAllSystems (pkgs: {
+      default = pkgs.mkShell {
+        nativeBuildInputs = with pkgs; [ yarn yarn2nix php datamaps generateTilesFromGPX ];
+        shellHook = ''
+          export NODE_OPTIONS=--openssl-legacy-provider
+          alias serve="yarn build && php -S localhost:8080"
+        '';
+      };
+    });
 
-    overlay = final: prev: {
+    apps = forAllSystems (pkgs: {
+      default.type    = "app";
+      default.program = "${pkgs.generateTilesFromGPX}/bin/generateTilesFromGPX";
+    });
 
+    overlays.default = final: prev: {
       datamaps  = final.stdenv.mkDerivation {
         name = "datamaps";
 

@@ -30,7 +59,7 @@
 
       gpx-map = final.mkYarnPackage {
         name = "gpx-map";
-        src  = self;
+        src  = inputs.self;
 
         packageJSON = ./package.json;
         yarnLock    = ./yarn.lock;

@@ -115,35 +144,8 @@
           mv $TMP_DIR/tiles/* $TILES_DIR/
         ''
       );
-
     };
 
-  } // (flake-utils.lib.eachDefaultSystem (system:
-    let
-      pkgs = import nixpkgs {
-        inherit system;
-        overlays = [ self.overlay ];
-      };
-
-    in rec {
-
-      packages.generateTilesFromGPX = pkgs.generateTilesFromGPX;
-      packages.datamaps             = pkgs.datamaps;
-      packages.gpx-map               = pkgs.gpx-map;
- 
-      devShells.default = pkgs.mkShell {
-        nativeBuildInputs = with pkgs; [ yarn yarn2nix php datamaps generateTilesFromGPX ];
-        shellHook = ''
-          export NODE_OPTIONS=--openssl-legacy-provider
-          alias serve="yarn build && php -S localhost:8080"
-        '';
-      };
-
-      apps.default = {
-        type = "app";
-        program = "${pkgs.generateTilesFromGPX}/bin/generateTilesFromGPX";
-      };
+  };
 
-    }
-  ));
-}-
\ No newline at end of file
+}