]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/modules/websites/tellesflorian/tellesflorian.nix
Purify Florian's website
[perso/Immae/Config/Nix.git] / virtual / modules / websites / tellesflorian / tellesflorian.nix
index 03b1fafb21a587c69a4f0592878e0607d7b047a4..4237af859532d874c5823576e73cd61786e85101 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages }:
+{ lib, writeText, fetchedGitPrivate, fetchurl, stdenv, composerEnv }:
 let
   tellesflorian = { config }: rec {
     environment = config.environment;
@@ -132,28 +132,22 @@ let
       fi
       '';
     };
-    webappDir = stdenv.mkDerivation (fetchedGitPrivate ./tellesflorian.json // rec {
-      buildPhase = ''
-        export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
-        export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
-
-        ln -sf ${configRoot} app/config/parameters.yml
-        sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json
-        ${if environment == "dev" then ''
-          composer install
-        '' else ''
-          SYMFONY_ENV=prod composer install --no-dev
-        ''}
-        rm -rf var
-        ln -sf ../../../../../${varDir}/var var
-        '';
-      installPhase = ''
-        cp -a . $out
-        '';
-      buildInputs = [
-        php git cacert phpPackages.composer
-      ];
-    });
+    webappDir = composerEnv.buildPackage (
+      import ./php-packages.nix { inherit composerEnv fetchurl; } //
+      fetchedGitPrivate ./tellesflorian.json //
+      rec {
+        noDev = (environment == "prod");
+        preInstall = ''
+          export SYMFONY_ENV="${environment}"
+          '';
+        postInstall = ''
+          cd $out
+          rm app/config/parameters.yml
+          ln -sf ${configRoot} app/config/parameters.yml
+          rm -rf var/{logs,cache}
+          ln -sf ../../../../../../${varDir}/var/{logs,cache,sessions} var/
+          '';
+      });
     webRoot = "${webappDir}/web";
   };
 in