serokell / hackage-search

An application that lets you search for anything on Hackage
https://hackage-search.serokell.io/
24 stars 0 forks source link

Revert "[OPS-1019] Split into separate derivations" #2

Closed int-index closed 4 years ago

int-index commented 4 years ago

Reverts serokell/hackage-search#1

It broke my workflow. ghcid backend/Search.hs no longer works (there are missing packages).

balsoft commented 4 years ago

WIth this diff, your workflow works again:

diff --git a/default.nix b/default.nix
index 567b1ee..ea718ad 100644
--- a/default.nix
+++ b/default.nix
@@ -24,6 +24,9 @@ let
     pkgs.zlib
     pkgs.pkgconfig
   ];
+
+  frontendInputs =       [ ghc pkgs.nodePackages.typescript pkgs.closurecompiler pkgs.sass ];
+
   LOCALE_ARCHIVE = if pkgs.stdenv.isLinux then
     "${pkgs.glibcLocales}/lib/locale/locale-archive"
   else
@@ -45,7 +48,6 @@ in rec {
     inherit LOCALE_ARCHIVE;
     buildInputs = backendInputs;
   };
-
   download = pkgs.stdenv.mkDerivation rec {
     name = "hackage-download";
     src = ./backend;
@@ -73,17 +75,15 @@ in rec {
         --src "$src" \
         --out "$out/share/frontend/index.html"
     '';
-    buildInputs =
-      [ ghc pkgs.nodePackages.typescript pkgs.closurecompiler pkgs.sass ];
+    buildInputs = frontendInputs;
   };

   shell = pkgs.mkShell rec {
     nobuildPhase = "touch $out";
-    inputsFrom = [ search download frontend ];
-    buildInputs =
+    buildInputs = backendInputs ++ frontendInputs ++
       [ pkgs.inotify-tools pkgs.haskellPackages.html-validator-cli pkgs.ghcid ];
     shellHook = ''
-      export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath (buildInputs ++ builtins.concatMap (pkg: pkg.buildInputs) inputsFrom)}:$LD_LIBRARY_PATH
+      export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath buildInputs}:$LD_LIBRARY_PATH
       export LANG=en_US.UTF-8
     '';
     inherit LOCALE_ARCHIVE;
int-index commented 4 years ago

Thanks. I decided to be a bit more cautious this time and recreated the change piece by piece (and testing at each step). Current master includes the needed changes.