{ environment ? "prod" , varDir ? "/var/lib/aten_${environment}" , composerEnv, fetchgit, runCommand, nodejs-10_x, jq, libsass, python, fetchurl, yarn2nix-moretea, yarn, sources }: let yarn2nix-moretea' = yarn2nix-moretea.override({ yarn = yarn.override({ nodejs = nodejs-10_x; }); nodejs = nodejs-10_x; }); packagesource = sources.websites-isabelle-aten; packagejson = runCommand "package.json" { buildInputs = [ jq ]; } '' cat ${packagesource}/package.json | jq -r '.version = "v1.0.0"|.name="aten"' > $out ''; yarnModules = yarn2nix-moretea'.mkYarnModules rec { name = "aten-yarn"; pname = name; version = "v1.0.0"; packageJSON = packagejson; yarnLock = "${packagesource}/yarn.lock"; yarnNix = ./yarn-packages.nix; pkgConfig = { node-sass = { buildInputs = [ libsass python ]; postInstall = let nodeHeaders = fetchurl { url = "https://nodejs.org/download/release/v${nodejs-10_x.version}/node-v${nodejs-10_x.version}-headers.tar.gz"; sha256 = "15hkcbs328d3rc1s14rmky8lh8d3rr86l8k0bia0ggxzwl23lj9c"; }; in '' node scripts/build.js --tarball=${nodeHeaders} ''; }; }; }; app = composerEnv.buildPackage ( import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // rec { version = packagesource.version; pname = "aten"; name = "${pname}-${version}"; src = packagesource; noDev = (environment == "prod"); preInstall = '' export SYMFONY_ENV="${environment}" export APP_ENV="${environment}" ''; postInstall = '' ln -sf ${yarnModules}/node_modules . yarn run --offline encore production rm -rf var/{log,cache} ln -sf ${varDir}/{log,cache} var/ ''; buildInputs = [ yarnModules yarn2nix-moretea'.yarn ]; passthru = { inherit varDir; inherit environment; webRoot = "${app}/public"; }; } ); in app