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

52 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;
}