+++ /dev/null
-# taken from nixpkgs to upgrade to latest version
-{ stdenv
-, pkgs
-, lib
-, buildBowerComponents
-, fetchurl
-, nodejs
-}:
-
-let
- nodePackages = import ./node-packages.nix {
- inherit pkgs nodejs;
- inherit (stdenv.hostPlatform) system;
- };
-
- bowerPackages = buildBowerComponents {
- name = "${cryptpad.name}-bower-packages";
- # this list had to be tweaked by hand:
- # * add the second jquery ~2.1.0 entry
- # * add the second bootstrap ~3.1.1 entry
- generated = ./bower-packages.nix;
- src = cryptpad.src;
- };
-
- # find an element in an attribute set
- findValue = pred: default: set:
- let
- list =
- lib.concatMap
- (name:
- let v = set.${name}; in
- if pred name v then [v] else []
- )
- (lib.attrNames set)
- ;
- in
- if list == [] then default
- else lib.head list
- ;
-
- # The cryptpad package attribute key changes for each release. Get it out
- # programatically instead.
- cryptpad = findValue
- (k: v: v.packageName == "cryptpad")
- (throw "cryptpad not found")
- nodePackages
- ;
-
- combined = cryptpad.override {
- postInstall = ''
- out_cryptpad=$out/lib/node_modules/cryptpad
-
- substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
-
- # add the bower components
- ln -sv \
- ${bowerPackages}/bower_components \
- $out_cryptpad/www/bower_components
-
- # add executable
- mkdir $out/bin
- cat <<EOF > $out/bin/cryptpad
- #!${stdenv.shell}
- exec ${nodejs}/bin/node $out_cryptpad/server.js
- EOF
- chmod +x $out/bin/cryptpad
- '';
- };
-in
- combined