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]
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file collective.recipe.shelloutput-0.1.tar.gz.
File metadata
- Download URL: collective.recipe.shelloutput-0.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac55a6605fcd2f68af6565778a056ffc7c1a7a02390ffe940112c0d467f1ede9
|
|
| MD5 |
2af0bb173c845f3710bacc1562d71dbf
|
|
| BLAKE2b-256 |
04528d4a23a109c9781886c718ee5eb43cfede498303ded42c5877c743915a9b
|