]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/modules/websites/connexionswing/connexionswing.nix
Purify connexionswing website
[perso/Immae/Config/Nix.git] / virtual / modules / websites / connexionswing / connexionswing.nix
index 66c9b53673e1a4df8d7119ae3cccc72d59a619a8..ecbbfd56b1304eb7bd30b902ab6c861a9cd26a8c 100644 (file)
@@ -1,9 +1,8 @@
-{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert }:
+{ pkgs, lib, writeText, fetchedGitPrivate, stdenv, composerEnv, fetchurl, fetchgit }:
 let
   connexionswing = { config }: rec {
     environment = config.environment;
     varDir = "/var/lib/connexionswing_${environment}";
-    envName= lib.strings.toUpper environment;
     configRoot =
       writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
@@ -13,6 +12,7 @@ let
             database_name: ${config.mysql.name}
             database_user: ${config.mysql.user}
             database_password: ${config.mysql.password}
+            database_server_version: ${pkgs.mariadb.mysqlVersion}
             mailer_transport: smtp
             mailer_host: mail.immae.eu
             mailer_user: null
@@ -143,28 +143,24 @@ let
       fi
       '';
     };
-    webappDir = stdenv.mkDerivation (fetchedGitPrivate ./connexionswing.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 ../../../../../${varDir}/{medias,uploads} web/images/
-        ln -sf ${configRoot} app/config/parameters.yml
-        sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json
-        ${if environment == "dev" then "php bin/composer install" else ''
-        SYMFONY_ENV=prod php bin/composer install --no-dev
-        ./bin/console assetic:dump --env=prod --no-debug
-        ''}
-        rm -rf var
-        ln -sf ../../../../../${varDir}/var var
-        '';
-      installPhase = ''
-        cp -a . $out
-        '';
-      buildInputs = [
-        php git cacert
-      ];
-    });
+    webappDir = composerEnv.buildPackage (
+      import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
+      fetchedGitPrivate ./connexionswing.json //
+      rec {
+        noDev = (environment == "prod");
+        preInstall = ''
+          export SYMFONY_ENV="${environment}"
+          '';
+        postInstall = ''
+          cd $out
+          ${if environment == "prod" then "php ./bin/console assetic:dump --env=prod --no-debug" else ""}
+          rm app/config/parameters.yml
+          ln -sf ${configRoot} app/config/parameters.yml
+          rm -rf var/{logs,cache}
+          ln -sf ../../../../../../${varDir}/var/{logs,cache} var/
+          ln -sf ../../../../../${varDir}/{medias,uploads} web/images/
+          '';
+      });
     webRoot = "${webappDir}/web";
   };
 in