aboutsummaryrefslogtreecommitdiff
path: root/modules/private/websites/isabelle/aten_app/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/private/websites/isabelle/aten_app/default.nix')
-rw-r--r--modules/private/websites/isabelle/aten_app/default.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/private/websites/isabelle/aten_app/default.nix b/modules/private/websites/isabelle/aten_app/default.nix
new file mode 100644
index 0000000..9c4e29f
--- /dev/null
+++ b/modules/private/websites/isabelle/aten_app/default.nix
@@ -0,0 +1,57 @@
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";
15 yarnNix = ./yarn-packages.nix;
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 = "1df3yhlwlvai0m9kvjyknjg11hnw0kj0rnhyzbwvsfjnmr6z8r76";
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