collective.recipe.shelloutput 0.1
Execute shell commands and reuse the output in another part of the buildout.
This recipe is for execute shell commands and get the output in another part of the buildout. The commands are defined in a section called commands, one per line and the output can be referenced from other parts using the ${...} syntax.
>>> write('dummy.py', ... ''' ... class Recipe(object): ... ... def __init__(self, buildout, name, options): ... self.options = options ... ... def install(self): ... if 'output_1' in self.options: ... print self.options['output_1'] ... if 'output_2' in self.options: ... print self.options['output_2'] ... return () ... ... def update(self): ... pass ... ''')>>> write('setup.py', ... ''' ... from setuptools import setup ... ... setup(name='dummyrecipe', ... entry_points = {'zc.buildout': ['default = dummy:Recipe']}) ... ''')>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = . ... parts = ... shelloutput ... use-shelloutput ... offline = true ... ... [shelloutput] ... recipe = collective.recipe.shelloutput ... commands = ... echo_1 = echo 'ECHO' ... echo_2 = echo 'The shell says: hello.' ... ... [use-shelloutput] ... recipe = dummyrecipe ... output_1 = ${shelloutput:echo_1} ... output_2 = ${shelloutput:echo_2} ... ''')>>> print system(join('bin', 'buildout')), Develop: '/sample-buildout/.' Installing shelloutput. Installing use-shelloutput. ECHO The shell says: hello.
If we give an empty command we get a hint.
>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = . ... parts = ... shelloutput ... use-shelloutput ... offline = true ... ... [shelloutput] ... recipe = collective.recipe.shelloutput ... commands = ... empty-cmd = ... ... [use-shelloutput] ... recipe = dummyrecipe ... output_1 = ${shelloutput:empty-cmd} ... ''')>>> print system(join('bin', 'buildout')), Develop: '/sample-buildout/.' Uninstalling use-shelloutput. Uninstalling shelloutput. Installing shelloutput. Installing use-shelloutput. Empty command 'empty-cmd', no output generated.
If the execution of a command generates an error, we get the error message.
>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = . ... parts = ... shelloutput ... use-shelloutput ... offline = true ... ... [shelloutput] ... recipe = collective.recipe.shelloutput ... commands = ... date = date -invalid-option ... ... [use-shelloutput] ... recipe = dummyrecipe ... output_1 = ${shelloutput:date} ... ''')>>> print system(join('bin', 'buildout')), Develop: '/sample-buildout/.' Uninstalling use-shelloutput. Uninstalling shelloutput. Installing shelloutput. Installing use-shelloutput. Error 'date: invalid option ... for command 'date'...
Change history
0.1 (2010-09-21)
- Initial release. [j23d]
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| collective.recipe.shelloutput-0.1.tar.gz (md5) | Source | 2010-09-21 | 4KB | 574 | |
- Author: j23d
- Home Page: http://pypi.python.org/pypi/collective.recipe.shelloutput
- Download URL: https://svn.plone.org/svn/collective/buildout/collective.recipe.shelloutput
- Keywords: shell recipe
- License: ZPL
- Categories
- Package Index Owner: j23d
- DOAP record: collective.recipe.shelloutput-0.1.xml
