Skip to main content

A recipe that runs any script to install a part.

Project 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 packages are 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, nothing 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.3 (2011-10-07)

  • Bug: fix Windows path support (containing semicolon such as ‘c:')

0.1.2 (2010-09-22)

  • Added test extra to declare test dependency on zope.testing.
  • Using Python’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.

Release history Release notifications

This version
History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
z3c.recipe.runscript-0.1.3.tar.gz (5.9 kB) Copy SHA256 hash SHA256 Source None Oct 7, 2011

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page