35 lines
730 B
Nix
35 lines
730 B
Nix
|
|
{
|
||
|
|
lib,
|
||
|
|
python3,
|
||
|
|
runCommand,
|
||
|
|
}:
|
||
|
|
|
||
|
|
let
|
||
|
|
python = python3;
|
||
|
|
|
||
|
|
# selector is a function mapping pythonPackages to a list of plugins
|
||
|
|
# e.g. `mdformat.withPlugins (ps: with ps; [ mdformat-footnote ])`
|
||
|
|
withPlugins =
|
||
|
|
selector:
|
||
|
|
runCommand "mdformat-wrapped"
|
||
|
|
{
|
||
|
|
inherit (python.pkgs.mdformat) pname version meta;
|
||
|
|
|
||
|
|
nativeBuildInputs = [
|
||
|
|
python.pkgs.wrapPython
|
||
|
|
];
|
||
|
|
|
||
|
|
plugins = selector python.pkgs;
|
||
|
|
|
||
|
|
passthru = {
|
||
|
|
inherit withPlugins;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
''
|
||
|
|
buildPythonPath "$plugins"
|
||
|
|
makeWrapper ${lib.getExe python.pkgs.mdformat} $out/bin/mdformat \
|
||
|
|
--suffix PYTHONPATH : "$program_PYTHONPATH"
|
||
|
|
'';
|
||
|
|
in
|
||
|
|
withPlugins (ps: [ ])
|