aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
{ 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)}
  '';
}