{ nix-filter, ... }: final: prev: let src = nix-filter { root = ../.; include = [ ../app ../src ../package.yaml # ../www-main.cabal ]; }; in { haskellPackages = prev.haskellPackages.extend (hfinal: hprev: { www-main = hfinal.callCabal2nix "www-main" src {}; }); rubberWith = pkgs: prev.symlinkJoin { name = "rubber"; nativeBuildInputs = [ prev.makeWrapper ]; paths = [ prev.rubber ]; postBuild = '' for x in $out/bin/*; do wrapProgram "$x" --prefix PATH : ${prev.lib.makeBinPath pkgs} done ''; }; hakyllWith = hakyll: pkgs: prev.symlinkJoin { inherit (hakyll) name; nativeBuildInputs = [ prev.makeWrapper ]; paths = [ (final.haskell.lib.compose.justStaticExecutables hakyll) ]; postBuild = '' for x in $out/bin/*; do wrapProgram "$x" --prefix PATH : ${prev.lib.makeBinPath pkgs} done ''; }; www-main = final.hakyllWith final.haskellPackages.www-main [ (final.rubberWith [ prev.texlive.combined.scheme-full ]) prev.rsync ]; # site = prev.symlinkJoin { # name = "site"; # paths = [ # (final.haskell.lib.compose.justStaticExecutables final.haskellPackages.www-main) # prev.rsync # ]; # }; }