{ lib, fetchgit, makeWrapper, nodejs, buildNpmPackage, inspectorPort ? null, }: buildNpmPackage { pname = "out-of-your-element"; version = "0"; src = fetchgit { url = "https://gitdab.com/cadence/out-of-your-element.git"; rev = "d0f7d79d78e1014f9f0357dd29a32601f006b242"; sha256 = "sha256-YdEyE0Dq1trHOOS3GqL4u1S7Lr0TvAWPZ4J5Ho1uO5w="; }; npmDepsHash = "sha256-hBHhX4my4fB5a6Khzwa1kOrVGn53tNBSK17bG0sh594="; dontNpmBuild = true; makeCacheWritable = true; # For some reason - broken on this version nativeBuildInputs = [ makeWrapper ]; installPhase = let enableInspector = inspectorPort != null; extraNodeFlags = lib.optionalString enableInspector "--inspect=127.0.0.1:${inspectorPort}"; in '' runHook preInstall mkdir -p $out/share cp -a . $out/share/ooye '' + (if enableInspector then "echo 'Enabling Node.js inspector'; sed -i '1i\\#!/usr/bin/env node --inspect' $out/share/ooye/start.js" else "") + '' makeWrapper ${nodejs}/bin/node $out/bin/matrix-ooye --add-flags ${extraNodeFlags} $out/share/ooye/start.js makeWrapper ${nodejs}/bin/node $out/bin/matrix-ooye-addbot --add-flags $out/share/ooye/addbot.js runHook postInstall ''; meta = { description = "Matrix-Discord bridge with modern features."; homepage = "https://gitdab.com/cadence/out-of-your-element"; longDescription = '' Modern Matrix-to-Discord appservice bridge, created by @cadence:cadence.moe. ''; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ RorySys ]; mainProgram = "matrix-ooye"; }; }