49 lines
1.4 KiB
Nix
49 lines
1.4 KiB
Nix
{ stdenv, fetchFromGitHub, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg, pixman, cairo, pango }:
|
|
|
|
let
|
|
# No official version ever released
|
|
src = fetchFromGitHub {
|
|
owner = "Sorunome";
|
|
repo = "mx-puppet-slack";
|
|
rev = "691e53d2d703bd169e1f23a8d8dff3f008d8c4ef";
|
|
sha256 = "1yczhfpa4qzvijcpgc2pr10s009qb6jwlfwpcbb17g2wsx6zj0c2";
|
|
};
|
|
|
|
myNodePackages = import ./node-composition.nix {
|
|
inherit pkgs nodejs;
|
|
inherit (stdenv.hostPlatform) system;
|
|
};
|
|
|
|
in myNodePackages.package.override {
|
|
pname = "mx-puppet-slack";
|
|
|
|
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-slack/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-slack
|
|
#!/bin/sh
|
|
exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-slack/build/index.js "\$@"
|
|
EOF
|
|
chmod +x $out/bin/mx-puppet-slack
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A slack puppeting bridge for matrix";
|
|
license = licenses.asl20;
|
|
homepage = "https://github.com/Sorunome/mx-puppet-slack";
|
|
maintainers = with maintainers; [ chickensoupwithrice ];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|
|
|