mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-26 16:11:08 +00:00
83 lines
2.2 KiB
Python
83 lines
2.2 KiB
Python
|
from distutils.command.bdist_wininst import bdist_wininst as _bdist_wininst
|
||
|
import os, sys
|
||
|
|
||
|
class bdist_wininst(_bdist_wininst):
|
||
|
_good_upload = _bad_upload = None
|
||
|
|
||
|
def create_exe(self, arcname, fullname, bitmap=None):
|
||
|
_bdist_wininst.create_exe(self, arcname, fullname, bitmap)
|
||
|
installer_name = self.get_installer_filename(fullname)
|
||
|
if self.target_version:
|
||
|
pyversion = self.target_version
|
||
|
# fix 2.5+ bdist_wininst ignoring --target-version spec
|
||
|
self._bad_upload = ('bdist_wininst', 'any', installer_name)
|
||
|
else:
|
||
|
pyversion = 'any'
|
||
|
self._good_upload = ('bdist_wininst', pyversion, installer_name)
|
||
|
|
||
|
def _fix_upload_names(self):
|
||
|
good, bad = self._good_upload, self._bad_upload
|
||
|
dist_files = getattr(self.distribution, 'dist_files', [])
|
||
|
if bad in dist_files:
|
||
|
dist_files.remove(bad)
|
||
|
if good not in dist_files:
|
||
|
dist_files.append(good)
|
||
|
|
||
|
def reinitialize_command (self, command, reinit_subcommands=0):
|
||
|
cmd = self.distribution.reinitialize_command(
|
||
|
command, reinit_subcommands)
|
||
|
if command in ('install', 'install_lib'):
|
||
|
cmd.install_lib = None # work around distutils bug
|
||
|
return cmd
|
||
|
|
||
|
def run(self):
|
||
|
self._is_running = True
|
||
|
try:
|
||
|
_bdist_wininst.run(self)
|
||
|
self._fix_upload_names()
|
||
|
finally:
|
||
|
self._is_running = False
|
||
|
|
||
|
|
||
|
if not hasattr(_bdist_wininst, 'get_installer_filename'):
|
||
|
def get_installer_filename(self, fullname):
|
||
|
# Factored out to allow overriding in subclasses
|
||
|
if self.target_version:
|
||
|
# if we create an installer for a specific python version,
|
||
|
# it's better to include this in the name
|
||
|
installer_name = os.path.join(self.dist_dir,
|
||
|
"%s.win32-py%s.exe" %
|
||
|
(fullname, self.target_version))
|
||
|
else:
|
||
|
installer_name = os.path.join(self.dist_dir,
|
||
|
"%s.win32.exe" % fullname)
|
||
|
return installer_name
|
||
|
# get_installer_filename()
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|