diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix')
-rw-r--r-- | nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix new file mode 100644 index 00000000000..cbaa4439afe --- /dev/null +++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix @@ -0,0 +1,41 @@ +{ 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; + + installPhase = '' + mkdir -p $out/bin + ${lib.concatStringsSep "\n" (lib.mapAttrsToList mkScript scripts)} + ''; +} |