From 0bbcd2d39efe57220d041a8fe1a79cdd4b259790 Mon Sep 17 00:00:00 2001 From: tarek Date: Wed, 22 Jul 2009 12:51:33 +0200 Subject: hooked the patching code into setup.py --HG-- branch : distribute extra : rebase_source : 8e77b3c98ea725103494ee55ec403dc967dbb3a6 --- ez_setup.py | 11 ++++++++++- setup.py | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ez_setup.py b/ez_setup.py index ec1861d8..a069c95c 100755 --- a/ez_setup.py +++ b/ez_setup.py @@ -153,24 +153,32 @@ Description: xxx """ def fake_setuptools(): + from distutils import log + log.warn('Scanning installed packages') try: import pkg_resources except ImportError: # we're cool + log.warn('Setuptools or Distribute does not seem to be installed.') return ws = pkg_resources.working_set setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools')) if setuptools_dist is None: + log.warn('No setuptools distribution found') return + # detecting if it was already faked setuptools_location = setuptools_dist.location + log.warn('Setuptools installation detected at %s' % setuptools_location) pkg_info = os.path.join(setuptools_location, 'EGG-INFO', 'PKG-INFO') if os.path.exists(pkg_info): content = open(pkg_info).read() if SETUPTOOLS_PKG_INFO == content: # already patched + log.warn('Already patched.') return + log.warn('Patching...') # let's create a fake egg replacing setuptools one os.rename(setuptools_location, setuptools_location+'.OLD.%s' % time.time()) os.mkdir(setuptools_location) @@ -181,7 +189,8 @@ def fake_setuptools(): f.write(SETUPTOOLS_PKG_INFO) finally: f.close() - + log.warn('Patched done.') + log.warn('Relaunching...') # we have to relaunch the process args = [sys.executable] + sys.argv if is_jython: diff --git a/setup.py b/setup.py index b9e419a7..c2788314 100755 --- a/setup.py +++ b/setup.py @@ -13,6 +13,12 @@ from setuptools import setup, find_packages import sys scripts = [] +# if we are installing Distribute using "python setup.py install" +# we need to get setuptools out of the way +if 'install' in sys.argv[1:]: + from ez_setup import fake_setuptools + fake_setuptools() + setup( name="distribute", version=VERSION, -- cgit v1.2.3