aboutsummaryrefslogtreecommitdiff
path: root/systems/eldiron/websites/tools/landing.nix
blob: f5d851e2adb5f45e38525e7b9f4994a9a1f6a61e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{ stdenv, yarn2nix-moretea, nodejs_16 }:
let
  source = builtins.fetchGit {
    url = "https://git.immae.eu/github/bastienwirtz/homer.git";
    ref = "gitolite_local/local_changes";
    rev = "bb60c5b869931f305f15c5bfa9cdb3f68702f01f";
    narHash = "sha256-xBIBUJhQ7KPY0d92pW9ErA9OvGafWcxyuGkbHShF4Bs=";
  };
  yarnModules = yarn2nix-moretea.mkYarnModules rec {
    nodejs = nodejs_16;
    name = "landing";
    pname = name;
    version = "v1.0.0";
    packageJSON = "${source}/package.json";
    yarnLock = "${source}/yarn.lock";
    yarnNix = ./landing/yarn-packages.nix;
  };
in
  stdenv.mkDerivation rec {
    pname = "landing";
    version = "v1.0.0";
    src = source;

    buildInputs = [ yarnModules yarn2nix-moretea.yarn ];
    configurePhase = ''
      ln -s ${yarnModules}/node_modules .
    '';
    buildPhase = ''
      # See https://stackoverflow.com/questions/74548318/how-to-resolve-error-error0308010cdigital-envelope-routinesunsupported-no
      export NODE_OPTIONS=--openssl-legacy-provider
      yarn build
    '';
    installPhase = ''
      cp -a dist $out
      cp ${./landing}/*.php $out/
      ln -s service-worker.js $out/worker.js
    '';
  }