Add a new --executable option to distribute so that we can
force the shebang line in installed python scripts.

[Thomas: refresh for setuptools 5.8.]

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/setuptools/command/install.py
===================================================================
--- a/setuptools/command/install.py
+++ b/setuptools/command/install.py
@@ -16,6 +16,7 @@
     """Use easy_install to install the package, w/dependencies"""
 
     user_options = orig.install.user_options + [
+        ('executable=', 'e', "specify final destination interpreter path"),
         ('old-and-unmanageable', None, "Try not to use this!"),
         ('single-version-externally-managed', None,
          "used by system package builders to create 'flat' eggs"),
@@ -31,6 +32,7 @@
 
     def initialize_options(self):
         orig.install.initialize_options(self)
+        self.executable = None
         self.old_and_unmanageable = None
         self.single_version_externally_managed = None
 
Index: b/setuptools/command/install_scripts.py
===================================================================
--- a/setuptools/command/install_scripts.py
+++ b/setuptools/command/install_scripts.py
@@ -11,6 +11,13 @@
     def initialize_options(self):
         orig.install_scripts.initialize_options(self)
         self.no_ep = False
+        self.executable = None
+
+    def finalize_options(self):
+        orig.install_scripts.finalize_options(self)
+        self.set_undefined_options('install',
+                ('executable','executable')
+        )
 
     def run(self):
         from setuptools.command.easy_install import get_script_args
@@ -32,6 +39,8 @@
         )
         bs_cmd = self.get_finalized_command('build_scripts')
         executable = getattr(bs_cmd, 'executable', sys_executable)
+        if self.executable is not None:
+            executable = self.executable
         is_wininst = getattr(
             self.get_finalized_command("bdist_wininst"), '_is_running', False
         )
