let common = import ./common.nix; pkgs = import common.pkgsSrc {}; bower2nixRepo = (import common.bower2nixSrc { inherit pkgs; }); bower2nix = bower2nixRepo // { package = bower2nixRepo.package.override { postInstall = "tsc"; }; }; in pkgs.mkShell { nativeBuildInputs = [ bower2nix.package pkgs.nodePackages.node2nix ]; shellHook = '' function update_lock { set -exuo pipefail mkdir -p nix.lock ${pkgs.wget}/bin/wget https://raw.githubusercontent.com/xwiki-labs/cryptpad/${common.cryptpadCommit}/package.json -O nix.lock/package.json ${pkgs.wget}/bin/wget https://raw.githubusercontent.com/xwiki-labs/cryptpad/${common.cryptpadCommit}/package-lock.json -O nix.lock/package-lock.json ${pkgs.wget}/bin/wget https://raw.githubusercontent.com/xwiki-labs/cryptpad/${common.cryptpadCommit}/bower.json -O nix.lock/bower.json ${bower2nix.package}/bin/bower2nix nix.lock/bower.json nix.lock/bower.nix ${pkgs.nodePackages.node2nix}/bin/node2nix --input nix.lock/package.json --lock nix.lock/package-lock.json --composition nix.lock/npm.nix --node-env nix.lock/node-env.nix --output nix.lock/node-packages.nix } ''; }