about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-02-27 16:13:46 +0100
committersterni <sternenseemann@systemli.org>2022-02-27 16:53:18 +0100
commit88229686ebab850c019a64508c72329357223f31 (patch)
treeed73033e59c92cb05fab3dcf7d15e46f4cdc6421
parent761c2376691bad75739d2dd93492168892e896fe (diff)
refactor(likely-music-backend): prevent unnecessary rebuilds
By filtering irrelevant things, building and iterating on likely-music
shouldn't be as big a chore anymore.
-rw-r--r--pkgs.nix26
1 files changed, 22 insertions, 4 deletions
diff --git a/pkgs.nix b/pkgs.nix
index 9bbd31f..d86a8bf 100644
--- a/pkgs.nix
+++ b/pkgs.nix
@@ -3,11 +3,29 @@
 rec {
   # likely-music haskellPackage
   likely-music-lib = likely-music-backend;
-  likely-music-backend = pkgs.haskellPackages.callPackage ./likely-music-backend.nix { };
+  likely-music-backend = pkgs.haskell.lib.compose.overrideSrc {
+    # Prevent unnecessary rebuilds
+    src = builtins.path {
+      name = "likely-music-backend-source";
+      path = ./.;
+      filter = path: type:
+        # Exclude paths irrelevant to Haskell compilation
+        builtins.all (prefix: !pkgs.lib.hasPrefix prefix path) [
+          (toString ./default.nix)
+          (toString ./likely-music-backend.nix)
+          (toString ./likely-music-service.nix)
+          (toString ./pkgs.nix)
+          (toString ./README.md)
+          (toString ./web)
+        ]
+        # Apply .gitignore rules
+        && pkgs.nix-gitignore.gitignoreFilter (
+          builtins.readFile ./.gitignore
+        ) ./. path type;
+    };
+  } (pkgs.haskellPackages.callPackage ./likely-music-backend.nix { });
 
-  likely-music-frontend = pkgs.callPackage ./web {
-    inherit napalm;
-  };
+  likely-music-frontend = pkgs.callPackage ./web { inherit napalm; };
 
   # executable wrapper around everything with correct paths
   likely-music = pkgs.runCommand "likely-music" { } ''