X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=pkgs%2Fcryptpad%2Fdefault.nix;fp=pkgs%2Fcryptpad%2Fdefault.nix;h=1e8c756832862c600e72ed94744dd0e90b3dcbb0;hb=1feea3fe58cbaa709bdf91925860c2c96680e61d;hp=0000000000000000000000000000000000000000;hpb=54d97019c035ccccceb53fb8531d1bc8bea5816a;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/pkgs/cryptpad/default.nix b/pkgs/cryptpad/default.nix new file mode 100644 index 0000000..1e8c756 --- /dev/null +++ b/pkgs/cryptpad/default.nix @@ -0,0 +1,70 @@ +# 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 < $out/bin/cryptpad + #!${stdenv.shell} + exec ${nodejs}/bin/node $out_cryptpad/server.js + EOF + chmod +x $out/bin/cryptpad + ''; + }; +in + combined