summaryrefslogtreecommitdiff
path: root/pkgs/servers/mx-puppet-discord/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/mx-puppet-discord/default.nix')
-rw-r--r--pkgs/servers/mx-puppet-discord/default.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/pkgs/servers/mx-puppet-discord/default.nix b/pkgs/servers/mx-puppet-discord/default.nix
new file mode 100644
index 000000000000..b3b72c2c5f2b
--- /dev/null
+++ b/pkgs/servers/mx-puppet-discord/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg
+, pixman, cairo, pango }:
+
+let
+ # No official version ever released
+ src = fetchFromGitHub {
+ owner = "matrix-discord";
+ repo = "mx-puppet-discord";
+ rev = "c17384a6a12a42a528e0b1259f8073e8db89b8f4";
+ sha256 = "1yczhfpa4qzvijcpgc2pr10s009qb6jwlfwpcbb17g2wsx6zj0c2";
+ };
+
+ myNodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+
+in myNodePackages.package.override {
+ inherit src;
+ nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ];
+ buildInputs = [ libjpeg pixman cairo pango ];
+
+ postInstall = ''
+ # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems
+ patchShebangs --build "$out/lib/node_modules/mx-puppet-discord/node_modules/"
+ # compile Typescript sources
+ npm run build
+
+ # Make an executable to run the server
+ mkdir -p $out/bin
+ cat <<EOF > $out/bin/mx-puppet-discord
+ #!/bin/sh
+ exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-discord/build/index.js "\$@"
+ EOF
+ chmod +x $out/bin/mx-puppet-discord
+ '';
+
+ meta = with lib; {
+ description = "A discord puppeting bridge for matrix";
+ license = licenses.asl20;
+ homepage = "https://github.com/matrix-discord/mx-puppet-discord";
+ maintainers = with maintainers; [ expipiplus1 ];
+ platforms = platforms.unix;
+ };
+}