Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
3.2 kB · 89 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990{ lib, symlinkJoin, runCommand, unwrapped, python3, formats,}:
let wrapper = { pythonPackages ? (_: [ ]), plugins ? (_: [ ]), baseConfig ? null, }: let plugins' = plugins unwrapped.plugins; extraPythonPackages = builtins.concatLists (map (p: p.propagatedBuildInputs or [ ]) plugins'); in symlinkJoin { name = "${unwrapped.pname}-with-plugins-${unwrapped.version}";
inherit unwrapped; paths = lib.optional (baseConfig != null) unwrapped ++ plugins'; pythonPath = lib.optional (baseConfig == null) unwrapped ++ pythonPackages python3.pkgs ++ extraPythonPackages;
nativeBuildInputs = [ python3.pkgs.wrapPython ];
postBuild = '' rm -f $out/nix-support/propagated-build-inputs rmdir $out/nix-support || true ${lib.optionalString (baseConfig != null) '' rm $out/${python3.sitePackages}/maubot/example-config.yaml substituteAll ${ (formats.yaml { }).generate "example-config.yaml" ( lib.recursiveUpdate baseConfig { plugin_directories = lib.optionalAttrs (plugins' != [ ]) { load = [ "@out@/lib/maubot-plugins" ] ++ (baseConfig.plugin_directories.load or [ ]); }; # Normally it should be set to false by default to take it from package # root, but aiohttp doesn't follow symlinks when serving static files # unless follow_symlinks=True is passed. Instead of patching maubot, use # this non-invasive approach # XXX: would patching maubot be better? See: # https://github.com/maubot/maubot/blob/75879cfb9370aade6fa0e84e1dde47222625139a/maubot/server.py#L106 server.override_resource_path = if builtins.isNull (baseConfig.server.override_resource_path or null) then "${unwrapped}/${python3.sitePackages}/maubot/management/frontend/build" else baseConfig.server.override_resource_path; } ) } $out/${python3.sitePackages}/maubot/example-config.yaml rm -rf $out/bin ''} mkdir -p $out/bin cp $unwrapped/bin/.mbc-wrapped $out/bin/mbc cp $unwrapped/bin/.maubot-wrapped $out/bin/maubot wrapPythonProgramsIn "$out/bin" "${lib.optionalString (baseConfig != null) "$out "}$pythonPath" '';
passthru = { inherit unwrapped; python = python3; withPythonPackages = filter: wrapper { pythonPackages = pkgs: pythonPackages pkgs ++ filter pkgs; inherit plugins baseConfig; }; withPlugins = filter: wrapper { plugins = pkgs: plugins pkgs ++ filter pkgs; inherit pythonPackages baseConfig; }; withBaseConfig = baseConfig: wrapper { inherit baseConfig pythonPackages plugins; }; };
meta.priority = (unwrapped.meta.priority or lib.meta.defaultPriority) - 1; };inwrapper