]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - pkgs/private/webapps/aten/default.nix
Make some packages compatible with no allow-import-from-derivation
[perso/Immae/Config/Nix.git] / pkgs / private / webapps / aten / default.nix
CommitLineData
1bd8b03e
IB
1{ environment ? "prod"
2, varDir ? "/var/lib/aten_${environment}"
3, mylibs, composerEnv, fetchgit, runCommand, nodejs, jq, libsass, python, fetchurl }:
4let
5 packagesource = mylibs.fetchedGitPrivate ./aten.json;
6 packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
7 cat ${packagesource.src}/package.json | jq -r '.version = "v1.0.0"|.name="aten"' > $out
8 '';
9 yarnModules = mylibs.yarn2nixPackage.mkYarnModules rec {
10 name = "aten-yarn";
11 pname = name;
12 version = "v1.0.0";
13 packageJSON = packagejson;
14 yarnLock = "${packagesource.src}/yarn.lock";
5145061e 15 yarnNix = ./yarn-packages.nix;
1bd8b03e
IB
16 pkgConfig = {
17 all = {
18 buildInputs = [ mylibs.yarn2nixPackage.src ];
19 };
20 node-sass = {
21 buildInputs = [ libsass python ];
22 postInstall = let
23 nodeHeaders = fetchurl {
24 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
25 sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32";
26 };
27 in
28 ''
29 node scripts/build.js --tarball=${nodeHeaders}
30 '';
31 };
32 };
33 };
34 app = composerEnv.buildPackage (
35 import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
36 packagesource //
37 rec {
38 noDev = (environment == "prod");
39 preInstall = ''
40 export SYMFONY_ENV="${environment}"
41 export APP_ENV="${environment}"
42 '';
43 postInstall = ''
44 ln -sf ${yarnModules}/node_modules .
45 yarn run --offline encore production
46 rm -rf var/{log,cache}
47 ln -sf ${varDir}/{log,cache} var/
48 '';
49 buildInputs = [ yarnModules mylibs.yarn2nixPackage.yarn ];
50 passthru = {
51 inherit varDir;
52 inherit environment;
53 webRoot = "${app}/public";
54 };
55 }
56 );
57in app