diff options
-rwxr-xr-x | setuptools/command/easy_install.py | 85 |
1 files changed, 44 insertions, 41 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index b7660744..cbcc7c85 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -1796,51 +1796,54 @@ class ScriptWriter(object): @classmethod def get_script_args(cls, dist, executable=sys_executable, wininst=False): - """Yield write_script() argument tuples for a distribution's entrypoints""" + """ + Yield write_script() argument tuples for a distribution's entrypoints + """ + spec = str(dist.as_requirement()) + header = get_script_header("", executable, wininst) for type_ in 'console', 'gui': - for res in cls._get_script_args(type_, dist, executable, wininst): - yield res + group = type_ + '_scripts' + for name, ep in dist.get_entry_map(group).items(): + script_text = cls.template % locals() + for res in cls._get_script_args(type_, name, header, + script_text, wininst): + yield res @classmethod - def _get_script_args(cls, type_, dist, executable, wininst): - spec = str(dist.as_requirement()) - header = get_script_header("", executable, wininst) - group = type_ + '_scripts' - for name, ep in dist.get_entry_map(group).items(): - script_text = cls.template % locals() - if sys.platform=='win32' or wininst: - # On Windows/wininst, add a .py extension and an .exe launcher - if type_=='gui': - launcher_type = 'gui' - ext = '-script.pyw' - old = ['.pyw'] - new_header = re.sub('(?i)python.exe','pythonw.exe',header) - else: - launcher_type = 'cli' - ext = '-script.py' - old = ['.py','.pyc','.pyo'] - new_header = re.sub('(?i)pythonw.exe','python.exe',header) - if os.path.exists(new_header[2:-1].strip('"')) or sys.platform!='win32': - hdr = new_header - else: - hdr = header - yield (name+ext, hdr+script_text, 't', [name+x for x in old]) - yield ( - name+'.exe', get_win_launcher(launcher_type), - 'b' # write in binary mode - ) - if not is_64bit(): - # install a manifest for the launcher to prevent Windows - # from detecting it as an installer (which it will for - # launchers like easy_install.exe). Consider only - # adding a manifest for launchers detected as installers. - # See Distribute #143 for details. - m_name = name + '.exe.manifest' - yield (m_name, load_launcher_manifest(name), 't') + def _get_script_args(cls, type_, name, dist, executable, wininst): + if sys.platform=='win32' or wininst: + # On Windows/wininst, add a .py extension and an .exe launcher + if type_=='gui': + launcher_type = 'gui' + ext = '-script.pyw' + old = ['.pyw'] + new_header = re.sub('(?i)python.exe','pythonw.exe',header) else: - # On other platforms, we assume the right thing to do is to - # just write the stub with no extension. - yield (name, header+script_text) + launcher_type = 'cli' + ext = '-script.py' + old = ['.py','.pyc','.pyo'] + new_header = re.sub('(?i)pythonw.exe','python.exe',header) + if os.path.exists(new_header[2:-1].strip('"')) or sys.platform!='win32': + hdr = new_header + else: + hdr = header + yield (name+ext, hdr+script_text, 't', [name+x for x in old]) + yield ( + name+'.exe', get_win_launcher(launcher_type), + 'b' # write in binary mode + ) + if not is_64bit(): + # install a manifest for the launcher to prevent Windows + # from detecting it as an installer (which it will for + # launchers like easy_install.exe). Consider only + # adding a manifest for launchers detected as installers. + # See Distribute #143 for details. + m_name = name + '.exe.manifest' + yield (m_name, load_launcher_manifest(name), 't') + else: + # On other platforms, we assume the right thing to do is to + # just write the stub with no extension. + yield (name, header+script_text) # for backward-compatibility get_script_args = ScriptWriter.get_script_args |