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