diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-23 18:17:24 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-23 18:17:24 +0100 |
commit | 625e0bfd93fd32bc9b698f16f70a86dec0e1ef77 (patch) | |
tree | 523c27bbab67ecf2c45cb71ae0b9cec2de717e06 /virtual/modules/websites/aten/aten.nix | |
parent | e5b1762494a825db6533f1c125ab877f35ac9d2d (diff) | |
download | Nix-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.nix | 70 |
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 }: |
2 | let | 2 | let |
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 | }; |
117 | in | 135 | in |