From 88229686ebab850c019a64508c72329357223f31 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 27 Feb 2022 16:13:46 +0100 Subject: 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. --- pkgs.nix | 26 ++++++++++++++++++++++---- 1 file 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" { } '' -- cgit 1.4.1