[Checkins] SVN: zc.buildout/branches/reinout-scripts/src/zc/buildout/ Trying to get scripts working. Not working yet...

Reinout van Rees reinout at vanrees.org
Wed Sep 2 09:11:34 EDT 2009


Log message for revision 103482:
  Trying to get scripts working.  Not working yet...

Changed:
  U   zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.py
  U   zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.txt
  U   zc.buildout/branches/reinout-scripts/src/zc/buildout/tests.py

-=-
Modified: zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.py
===================================================================
--- zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.py	2009-09-02 11:04:48 UTC (rev 103481)
+++ zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.py	2009-09-02 13:11:34 UTC (rev 103482)
@@ -927,6 +927,7 @@
         initialization = '\n'+initialization+'\n'
 
     entry_points = []
+    distutils_scripts = []
     for req in reqs:
         if isinstance(req, str):
             req = pkg_resources.Requirement.parse(req)

Modified: zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.txt
===================================================================
--- zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.txt	2009-09-02 11:04:48 UTC (rev 103481)
+++ zc.buildout/branches/reinout-scripts/src/zc/buildout/easy_install.txt	2009-09-02 13:11:34 UTC (rev 103482)
@@ -912,6 +912,32 @@
         __import__("code").interact(banner="", local=globals())
 
 
+Installing distutils-style scripts
+----------------------------------
+
+Most python libraries use the console_scripts entry point nowadays.  But
+several still have a ``scripts=['bin/something']`` in their setup() call.
+Buildout also installs those:
+
+    >>> distdir = tmpdir('distutilsscriptdir')
+    >>> distbin = tmpdir('distutilsscriptbin')
+    >>> ws = zc.buildout.easy_install.install(
+    ...     ['other'], distdir,
+    ...     links=[link_server], index=link_server+'index/')
+    >>> scripts = zc.buildout.easy_install.scripts(
+    ...     ['other'], ws, sys.executable, distbin)
+    >>> ls(distbin)
+    -  distutilsscript
+
+Distutils copies the specified script files verbatim, apart from a line at the
+top that looks like ``#!/usr/bin/python``, which gets replaced by the actual
+python interpreter.  Buildout does the same, but additionally also adds the
+sys.path like for the console_scripts:
+
+    >>> cat(distbin, 'distutilsscript')
+    TODO
+
+
 Handling custom build options for extensions provided in source distributions
 -----------------------------------------------------------------------------
 

Modified: zc.buildout/branches/reinout-scripts/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/branches/reinout-scripts/src/zc/buildout/tests.py	2009-09-02 11:04:48 UTC (rev 103481)
+++ zc.buildout/branches/reinout-scripts/src/zc/buildout/tests.py	2009-09-02 13:11:34 UTC (rev 103482)
@@ -2675,14 +2675,17 @@
                 )
             zc.buildout.testing.sdist(tmp, dest)
 
+        write(tmp, 'distutilsscript', '#!/usr/bin/python\nprint "distutils!"')
         write(
             tmp, 'setup.py',
             "from setuptools import setup\n"
             "setup(name='other', zip_safe=False, version='1.0', "
+            "scripts=['distutilsscript'],"
             "py_modules=['eggrecipedemoneeded'])\n"
             )
         zc.buildout.testing.bdist_egg(tmp, executable, dest)
 
+        os.remove(os.path.join(tmp, 'distutilsscript'))
         os.remove(os.path.join(tmp, 'eggrecipedemoneeded.py'))
 
         for i in (1, 2, 3, 4):



More information about the checkins mailing list