aboutsummaryrefslogtreecommitdiff
path: root/virtual/modules/websites/aten/aten.nix
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2019-01-23 18:17:24 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-01-23 18:17:24 +0100
commit625e0bfd93fd32bc9b698f16f70a86dec0e1ef77 (patch)
tree523c27bbab67ecf2c45cb71ae0b9cec2de717e06 /virtual/modules/websites/aten/aten.nix
parente5b1762494a825db6533f1c125ab877f35ac9d2d (diff)
downloadNix-625e0bfd93fd32bc9b698f16f70a86dec0e1ef77.tar.gz
Nix-625e0bfd93fd32bc9b698f16f70a86dec0e1ef77.tar.zst
Nix-625e0bfd93fd32bc9b698f16f70a86dec0e1ef77.zip
Purify aten's website
Diffstat (limited to 'virtual/modules/websites/aten/aten.nix')
-rw-r--r--virtual/modules/websites/aten/aten.nix70
1 files changed, 44 insertions, 26 deletions
diff --git a/virtual/modules/websites/aten/aten.nix b/virtual/modules/websites/aten/aten.nix
index 1520439..69e1d4c 100644
--- a/virtual/modules/websites/aten/aten.nix
+++ b/virtual/modules/websites/aten/aten.nix
@@ -1,4 +1,4 @@
1{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, yarn }: 1{ lib, writeText, fetchedGitPrivate, stdenv, composerEnv, fetchurl, fetchgit, binutils, python, nodejs, libsass, yarn2nix }:
2let 2let
3 aten = { config }: rec { 3 aten = { config }: rec {
4 environment = config.environment; 4 environment = config.environment;
@@ -87,31 +87,49 @@ let
87 fi 87 fi
88 ''; 88 '';
89 }; 89 };
90 webappDir = stdenv.mkDerivation (fetchedGitPrivate ./aten.json // rec { 90 yarnModules = let
91 buildPhase = '' 91 info = fetchedGitPrivate ./aten.json;
92 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt 92 in
93 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt 93 yarn2nix.mkYarnModules {
94 export APP_ENV="${environment}" 94 name = "aten-yarn-modules";
95 export DATABASE_URL="${config.psql_url}" 95 packageJSON = "${info.src}/package.json";
96 export APP_SECRET="${config.secret}" 96 yarnLock = "${info.src}/yarn.lock";
97 97 pkgConfig = {
98 ${if environment == "dev" then '' 98 node-sass = {
99 composer install 99 buildInputs = [ binutils libsass python ];
100 '' else '' 100 postInstall = let
101 SYMFONY_ENV=prod composer install --no-dev 101 nodeHeaders = fetchurl {
102 ''} 102 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
103 yarn install 103 sha256 = "12zzsf8my43b8qnlacp871ih5vqafl2vlpqp51xp6h3gckn2frwy";
104 yarn run encore production 104 };
105 rm -rf var 105 in
106 ln -sf ../../../../../${varDir} var 106 ''
107 ''; 107 export AR=${binutils.bintools}/bin/ar
108 installPhase = '' 108 node scripts/build.js --tarball=${nodeHeaders}
109 cp -a . $out 109 '';
110 ''; 110 };
111 buildInputs = [ 111 };
112 php git cacert phpPackages.composer yarn 112 };
113 ]; 113 webappDir = composerEnv.buildPackage (
114 }); 114 import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
115 fetchedGitPrivate ./aten.json //
116 rec {
117 noDev = (environment == "prod");
118 preInstall = ''
119 export SYMFONY_ENV="${environment}"
120 export APP_ENV="${environment}"
121 export DATABASE_URL="${config.psql_url}"
122 export APP_SECRET="${config.secret}"
123 '';
124 postInstall = ''
125 cd $out
126 ln -sf ${yarnModules}/node_modules .
127 yarn run --offline encore production
128 rm -rf var/{log,cache}
129 ln -sf ../../../../../../../${varDir}/{log,cache} var/
130 '';
131 buildInputs = [ yarn2nix.yarn ];
132 });
115 webRoot = "${webappDir}/public"; 133 webRoot = "${webappDir}/public";
116 }; 134 };
117in 135in