aboutsummaryrefslogtreecommitdiff
path: root/app/cryptpad/build/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'app/cryptpad/build/default.nix')
-rw-r--r--app/cryptpad/build/default.nix58
1 files changed, 55 insertions, 3 deletions
diff --git a/app/cryptpad/build/default.nix b/app/cryptpad/build/default.nix
index 2069a58..96795bc 100644
--- a/app/cryptpad/build/default.nix
+++ b/app/cryptpad/build/default.nix
@@ -2,20 +2,72 @@ let
common = import ./common.nix;
pkgs = import common.pkgsSrc {};
nodejs = pkgs.${common.nodejs};
+
+ bower2nix =
+ bowerNix = pkgs.stdenv.mkDerivation {
+ name = "cryptpad-bower-ifd";
+ src = common.cryptpadSrc;
+
+ buildPhase = ''
+ ${pkgs.nodePackages.bower2nix}/bin/bower2nix bower.json bower.nix
+ '';
+
+ installPhase = ''
+ cp bower.nix $out
+ '';
+
+ dontFixup = true;
+ };
+ bower = pkgs.buildBowerComponents {
+ name = "cryptpad-bower";
+ generated = bowerNix;
+ src = common.cryptpadSrc;
+ };
+
+ npmNix = pkgs.stdenv.mkDerivation {
+ name = "cryptpad-npm-ifd";
+ src = common.cryptpadSrc;
+
+ buildPhase = ''
+ ${pkgs.nodePackages.node2nix}/bin/node2nix -l package-lock.json
+ '';
+
+ installPhase = ''
+ mkdir -p $out/
+ cp *.nix $out/
+ '';
+
+ dontFixup = true;
+ };
+ npm = (import npmNix {
+ inherit pkgs nodejs;
+ }).nodeDependencies;
+
in
pkgs.stdenv.mkDerivation {
name = "cryptpad";
- src = ./cryptpad;
+ src = common.cryptpadSrc;
installPhase = ''
mkdir -p $out/{bin,opt}
- cp -r config customize.dist lib node_modules package.json package-lock.json server.js www $out/opt/
+ # copy the source code
+ cp -r customize.dist lib server.js www $out/opt/
+
+ # mount node_modules
+ ln -s ${npm}/lib/node_modules $out/opt/node_modules
+
+ # mount bower, based on the .bowerrc file at the git repo root
+ ln -s ${bower} $out/opt/www/bower_components
+
+ # cryptpad is bugged with absolute path, this is a workaround to use absolute path as relative path
ln -s / $out/opt/root
+ # start script
cat > $out/bin/cryptpad <<EOF
- cd $out/opt/
#!${pkgs.bash}/bin/bash
+ cd $out/opt/
+ export PATH="${npm}/bin:$PATH"
${nodejs}/bin/node server.js
EOF