boostrap 1
[ifgu.git] / bootstrap.py
index 7647cbb..1cce2ce 100644 (file)
@@ -136,10 +136,6 @@ parser.add_option("-c", None, action="store", dest="config_file",
 
 options, args = parser.parse_args()
 
-# if -c was provided, we push it back into args for buildout's main function
-if options.config_file is not None:
-    args += ['-c', options.config_file]
-
 if options.eggs:
     eggs_dir = os.path.abspath(os.path.expanduser(options.eggs))
 else:
@@ -152,8 +148,7 @@ if options.setup_source is None:
         options.setup_source = setuptools_source
 
 if options.accept_buildout_test_releases:
-    args.append('buildout:accept-buildout-test-releases=true')
-args.append('bootstrap')
+    args.insert(0, 'buildout:accept-buildout-test-releases=true')
 
 try:
     import pkg_resources
@@ -170,6 +165,8 @@ except ImportError:
         setup_args['download_base'] = options.download_base
     if options.use_distribute:
         setup_args['no_fake'] = True
+        if sys.version_info[:2] == (2, 4):
+            setup_args['version'] = '0.6.32'
     ez['use_setuptools'](**setup_args)
     if 'pkg_resources' in sys.modules:
         reload(sys.modules['pkg_resources'])
@@ -192,6 +189,8 @@ if not has_broken_dash_S:
 find_links = options.download_base
 if not find_links:
     find_links = os.environ.get('bootstrap-testing-find-links')
+if not find_links and options.accept_buildout_test_releases:
+    find_links = 'http://downloads.buildout.org/'
 if find_links:
     cmd.extend(['-f', quote(find_links)])
 
@@ -228,6 +227,8 @@ if version is None and not options.accept_buildout_test_releases:
         bestv = None
         for dist in index[req.project_name]:
             distv = dist.parsed_version
+            if distv >= pkg_resources.parse_version('2dev'):
+                continue
             if _final_version(distv):
                 if bestv is None or distv > bestv:
                     best = [dist]
@@ -237,8 +238,12 @@ if version is None and not options.accept_buildout_test_releases:
         if best:
             best.sort()
             version = best[-1].version
+
 if version:
-    requirement = '=='.join((requirement, version))
+    requirement += '=='+version
+else:
+    requirement += '<2dev'
+
 cmd.append(requirement)
 
 if is_jython:
@@ -257,6 +262,16 @@ if exitcode != 0:
 ws.add_entry(eggs_dir)
 ws.require(requirement)
 import zc.buildout.buildout
+
+# If there isn't already a command in the args, add bootstrap
+if not [a for a in args if '=' not in a]:
+    args.append('bootstrap')
+
+
+# if -c was provided, we push it back into args for buildout's main function
+if options.config_file is not None:
+    args[0:0] = ['-c', options.config_file]
+
 zc.buildout.buildout.main(args)
 if not options.eggs:  # clean up temporary egg directory
     shutil.rmtree(eggs_dir)