Metadata-Version: 1.0
Name: z3c.recipe.runscript
Version: 0.1.2
Summary: A recipe that runs any script to install a part.
Home-page: http://cheeseshop.python.org/pypi/z3c.recipe.runscript
Author: Stephan Richter and the Zope Community
Author-email: zope3-dev@zope.org
License: ZPL 2.1
Description: This run-script URL allows you to specify an arbitrary script to do the work
        of the recipe.
        
        
        Detailed Documentation
        **********************
        
        =================================
        The ``runscript`` Buildout Recipe
        =================================
        
        Some software is not easily installed using established build patterns, such
        as "configure, make, make install". In those cases you want to be able to use
        arbitrary scripts to build a particular part. This recipe provides a simple
        implementation to run a Python callable for each installing and updating a
        part.
        
        >>> import os
        >>> import z3c.recipe.runscript.tests
        >>> scriptFilename = os.path.join(
        ...     os.path.dirname(z3c.recipe.runscript.tests.__file__), 'fooscripts.py')
        
        Let's create a sample buildout to install it:
        
        >>> write('buildout.cfg',
        ... """
        ... [buildout]
        ... parts = foo
        ...
        ... [foo]
        ... recipe = z3c.recipe.runscript
        ... install-script = %s:installFoo
        ... """ %scriptFilename)
        
        The ``install-script`` option specifies the module and the function to call
        during the part installation. The function takes the local and buildout
        options as arguments. See ``tests/fooscripts.py`` for details.
        
        When running buildout, the ``installFoo()`` function is called:
        
        >>> print system('bin/buildout')
        Installing foo.
        Now executing ``installFoo()``
        
        If we run the buildout again, the update method will be called, but since we
        did not specify any, ntohing happens:
        
        >>> print system('bin/buildout')
        Updating foo.
        
        Let's now specify the update script as well, causing the ``updateFoo()``
        function to be called:
        
        >>> write('buildout.cfg',
        ... """
        ... [buildout]
        ... parts = foo
        ...
        ... [foo]
        ... recipe = z3c.recipe.runscript
        ... install-script = %s:installFoo
        ... update-script = %s:updateFoo
        ... """ %(scriptFilename, scriptFilename))
        
        But after a change like that, parts will be uninstalled and reinstalled:
        
        >>> print system('bin/buildout')
        Uninstalling foo.
        Installing foo.
        Now executing ``installFoo()``
        
        Only now we can update the part:
        
        >>> print system('bin/buildout')
        Updating foo.
        Now executing ``updateFoo()``
        
        And that's it.
        
        
        =======
        CHANGES
        =======
        
        0.1.2 (2010-09-22)
        ------------------
        
        - Added test extra to declare test dependency on ``zope.testing``.
        
        - Using Pyhton's ``doctest`` module instead of depreacted
        ``zope.testing.doctest``.
        
        
        0.1.1 (2008-04-18)
        ------------------
        
        - Bug: Fix release to include CHANGES.txt.
        
        
        0.1.0 (2007-07-30)
        ------------------
        
        - Initial Release.
        
Keywords: buildout recipe
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
