diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix new file mode 100644 index 000000000000..3d2e4058d061 --- /dev/null +++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix @@ -0,0 +1,93 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchYarnDeps +, prefetch-yarn-deps +, nodejs +, nodejs-slim +, matrix-sdk-crypto-nodejs +, nixosTests +, nix-update-script +}: + +let + pname = "matrix-appservice-irc"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-wUbWvCa9xvot73nXZjF3/RawM98ffBCW5YR2+ZKzmEo="; + }; + + yarnOfflineCache = fetchYarnDeps { + name = "${pname}-${version}-offline-cache"; + yarnLock = "${src}/yarn.lock"; + hash = "sha256-P9u5sK9rIHWRE8kFMj05fVjv26jwsawvHBZgSn7j5BE="; + }; + +in +stdenv.mkDerivation { + inherit pname version src yarnOfflineCache; + + strictDeps = true; + + nativeBuildInputs = [ + prefetch-yarn-deps + nodejs-slim + nodejs.pkgs.yarn + nodejs.pkgs.node-gyp-build + ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror "$yarnOfflineCache" + fixup-yarn-lock yarn.lock + yarn install --frozen-lockfile --offline --no-progress --non-interactive --ignore-scripts + patchShebangs node_modules/ bin/ + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn --offline build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir $out + cp package.json $out + cp app.js config.schema.yml $out + cp -r bin lib public $out + + # prune dependencies to production only + yarn install --frozen-lockfile --offline --no-progress --non-interactive --ignore-scripts --production + cp -r node_modules $out + + # replace matrix-sdk-crypto-nodejs with nixos package + rm -rv $out/node_modules/@matrix-org/matrix-sdk-crypto-nodejs + ln -sv ${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs $out/node_modules/@matrix-org/ + + runHook postInstall + ''; + + passthru.tests.matrix-appservice-irc = nixosTests.matrix-appservice-irc; + passthru.updateScript = nix-update-script { }; + + meta = with lib; { + description = "Node.js IRC bridge for Matrix"; + mainProgram = "matrix-appservice-irc"; + maintainers = with maintainers; [ rhysmdnz ]; + homepage = "https://github.com/matrix-org/matrix-appservice-irc"; + license = licenses.asl20; + platforms = platforms.linux; + }; +} |