{ environment ? "prod" , varDir ? "/var/lib/aten_${environment}" , mylibs, composerEnv, fetchgit, runCommand, nodejs, jq, libsass, python, fetchurl, yarn2nix-moretea }: let packagesource = mylibs.fetchedGitPrivate ./aten.json; packagejson = runCommand "package.json" { buildInputs = [ jq ]; } '' cat ${packagesource.src}/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.src}/yarn.lock"; yarnNix = ./yarn-packages.nix; pkgConfig = { node-sass = { buildInputs = [ libsass python ]; postInstall = let nodeHeaders = fetchurl { url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz"; sha256 = "1prvrcvbyal39k9axfwjixs4wfgs1m8xy4prsl0kq0s0n7r7nxzj"; }; in '' node scripts/build.js --tarball=${nodeHeaders} ''; }; }; }; app = composerEnv.buildPackage ( import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // packagesource // rec { 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