-{ 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
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
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