depot/third_party/nixpkgs/pkgs/servers/matrix-synapse/wrapper.nix

47 lines
1.2 KiB
Nix

{ lib
, stdenv
, makeWrapper
, matrix-synapse-unwrapped
, extras ? [
"postgres"
"url-preview"
"user-search"
] ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform matrix-synapse-unwrapped.python.pkgs.systemd) "systemd"
, plugins ? [ ]
, ...
}:
let
extraPackages = lib.concatMap (extra: matrix-synapse-unwrapped.optional-dependencies.${extra}) (lib.unique extras);
pythonEnv = matrix-synapse-unwrapped.python.buildEnv.override {
extraLibs = extraPackages ++ plugins;
};
searchPath = "${pythonEnv}/${matrix-synapse-unwrapped.python.sitePackages}";
in
stdenv.mkDerivation {
name = (lib.appendToName "wrapped" matrix-synapse-unwrapped).name;
nativeBuildInputs = [
makeWrapper
];
buildCommand = ''
for bin in ${matrix-synapse-unwrapped}/bin/*; do
echo $bin
makeWrapper "$bin" "$out/bin/$(basename $bin)" \
--set PYTHONPATH ${searchPath}
done;
'';
passthru = {
unwrapped = matrix-synapse-unwrapped;
# for backward compatibility
inherit (matrix-synapse-unwrapped) plugins tests tools;
};
# Carry the maintainer, licenses, and various useful information.
inherit (matrix-synapse-unwrapped) meta;
}