about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/mx-puppet-discord/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/mx-puppet-discord/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix b/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix
new file mode 100644
index 000000000000..7100a5bd271b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitLab, pkgs, lib, nodejs_18, pkg-config
+, libjpeg, pixman, cairo, pango, which, postgresql }:
+
+let
+  nodejs = nodejs_18;
+
+  version = "0.1.1";
+
+  src = fetchFromGitLab {
+    group = "mx-puppet";
+    owner = "discord";
+    repo = "mx-puppet-discord";
+    rev = "v${version}";
+    hash = "sha256-ZhyjUt6Bz/0R4+Lq/IoY9rNjdwVE2qp4ZQLc684+T/0=";
+  };
+
+  myNodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+
+in myNodePackages.package.override {
+  inherit version src;
+
+  nativeBuildInputs = [ nodejs.pkgs.node-pre-gyp nodejs.pkgs.node-gyp-build pkg-config which ];
+  buildInputs = [ libjpeg pixman cairo pango postgresql ];
+
+  postRebuild = ''
+    # Build typescript stuff
+    npm run build
+  '';
+
+  postInstall = ''
+    # 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://gitlab.com/mx-puppet/discord/mx-puppet-discord";
+    maintainers = with maintainers; [ expipiplus1 ];
+    platforms = platforms.unix;
+    # never built on aarch64-darwin since first introduction in nixpkgs
+    broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "mx-puppet-discord";
+  };
+}