ZC Buildout recipe to execute a commande line
Project description
WARNING: This package is deprecated. You should use collective.recipe.cmd
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
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.