iw.recipe.cmd 0.3
ZC Buildout recipe to execute a commande line
- Code repository: https://ingeniweb.svn.sourceforge.net/svnroot/ingeniweb/iw.recipe.cmd/trunk
- Questions and comments to support@ingeniweb.com
- Report bugs at http://trac.ingeniweb.com/
Change history
trunk (2008-04-22)
- xxx [Ingeniweb]
0.3 (2008-04-22)
- apply last version of the recipe template [gawel]
0.2 (2008-04-22)
- run commands in one process [gawel]
- win32 tests compat [gawel]
Detailed Documentation
Supported options
The recipe supports the following options:
on_install
true if the commands must run on install
on_update
true if the commands must run on update
cmds
a set of command lines
shell
a valid interpreter (POSIX only)
Example usage
We need a config file:
>>> cfg = """ ... [buildout] ... parts = cmds ... ... [cmds] ... recipe = iw.recipe.cmd ... on_install=true ... cmds= %s ... """ >>> test_file = join(sample_buildout, 'test.txt') >>> cmds = 'echo "bouh" > %s' % test_file >>> write(sample_buildout, 'buildout.cfg', cfg % cmds)
Ok, so now we can touch a file for testing:
>>> print system(buildout) Installing cmds. >>> 'test.txt' in os.listdir(sample_buildout) True
And remove it:
>>> test_file = join(sample_buildout, 'test.txt') >>> if sys.platform == 'win32': ... cmds = 'del %s' % test_file ... else: ... cmds = 'rm -f %s' % test_file >>> write(sample_buildout, 'buildout.cfg', cfg % cmds) >>> print system(buildout) Uninstalling cmds. Installing cmds. >>> 'test.txt' in os.listdir(sample_buildout) False
We can run more than one commands:
>>> if sys.platform == 'win32': ... cmds = ''' ... echo "bouh" > %s ... del %s ... ''' % (test_file, test_file) ... else: ... cmds = ''' ... echo "bouh" > %s ... rm -f %s ... ''' % (test_file, test_file) >>> test_file = join(sample_buildout, 'test.txt') >>> if sys.platform == 'win32': ... cmds = 'del %s' % test_file ... else: ... cmds = 'rm -f %s' % test_file >>> write(sample_buildout, 'buildout.cfg', cfg % cmds) >>> print system(buildout) Updating cmds. >>> 'test.txt' in os.listdir(sample_buildout) False
We can also run some python code:
>>> cfg = """
... [buildout]
... parts = py py2
...
... [py]
... recipe = iw.recipe.cmd:py
... on_install=true
... cmds=
... >>> sample_buildout = buildout.get('directory', '.')
... >>> print sorted(os.listdir(sample_buildout))
... >>> os.remove(os.path.join(sample_buildout, ".installed.cfg"))
... >>> print sorted(os.listdir(sample_buildout))
... [py2]
... recipe = iw.recipe.cmd:py
... on_install=true
... cmds=
... >>> def myfunc(value):
... ... return value and True or False
... >>> v = 20
... >>> print myfunc(v)
... """
>>> write(sample_buildout, 'buildout.cfg', cfg)
Ok, so now we run it:
>>> print system(buildout) Uninstalling cmds. Installing py. ['.installed.cfg', 'bin', 'buildout.cfg', 'develop-eggs', 'eggs', 'parts'] ['bin', 'buildout.cfg', 'develop-eggs', 'eggs', 'parts'] Installing py2. True
Contributors
Gael Pasgrimaud
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| iw.recipe.cmd-0.3-py2.4.egg (md5) | Python Egg | 2.4 | 2008-04-22 15:47:07 | 10KB | 4086 |
| iw.recipe.cmd-0.3.tar.gz (md5) | Source | 2008-04-22 15:47:07 | 6KB | 3042 | |
- Author: Ingeniweb <support at ingeniweb com>
- Home Page: http://plone.org/products/iw-recipes
- Keywords: buildout recipe
- License: GPL
- Categories
- Package Index Owner: ingeniweb
- DOAP record: iw.recipe.cmd-0.3.xml
Log in to rate this package.
