2020-08-17 02:22:47 +02:00
|
|
|
{ lib
|
|
|
|
, scripts
|
|
|
|
, python
|
|
|
|
}:
|
|
|
|
let
|
|
|
|
mkScript = bin: entrypoint:
|
|
|
|
let
|
|
|
|
elem = builtins.elemAt (builtins.split ":" entrypoint);
|
|
|
|
module = elem 0;
|
|
|
|
fn = elem 2;
|
|
|
|
in
|
|
|
|
''
|
|
|
|
cat << EOF >> $out/bin/${bin}
|
|
|
|
#!${python.interpreter}
|
|
|
|
import sys
|
|
|
|
import re
|
|
|
|
|
|
|
|
# Insert "" to add CWD to import path
|
|
|
|
sys.path.insert(0, "")
|
|
|
|
|
|
|
|
from ${module} import ${fn}
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', "", sys.argv[0])
|
|
|
|
sys.exit(${fn}())
|
|
|
|
EOF
|
|
|
|
chmod +x $out/bin/${bin}
|
|
|
|
'';
|
|
|
|
in
|
|
|
|
python.pkgs.buildPythonPackage {
|
|
|
|
name = "poetry2nix-env-scripts";
|
|
|
|
dontUnpack = true;
|
|
|
|
dontUseSetuptoolsBuild = true;
|
|
|
|
dontConfigure = true;
|
|
|
|
dontUseSetuptoolsCheck = true;
|
|
|
|
|
2022-10-07 21:37:53 +13:00
|
|
|
format = "poetry2nix";
|
|
|
|
|
2020-08-17 02:22:47 +02:00
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
${lib.concatStringsSep "\n" (lib.mapAttrsToList mkScript scripts)}
|
|
|
|
'';
|
|
|
|
}
|