执行shell命令并在构建过程中的另一部分重用输出。
项目描述
这个配方用于执行shell命令并在构建过程中的另一部分获取输出。命令定义在名为commands的节中,每行一个,输出可以使用${…}语法从其他部分引用。
>>> 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.
如果我们给出一个空命令,我们将得到一个提示。
>>> 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.
如果命令的执行生成错误,我们将得到错误消息。
>>> 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'...
变更历史
0.1 (2010-09-21)
初始发布。 [j23d]
项目详情
关闭
collective.recipe.shelloutput-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ac55a6605fcd2f68af6565778a056ffc7c1a7a02390ffe940112c0d467f1ede9 |
|
MD5 | 2af0bb173c845f3710bacc1562d71dbf |
|
BLAKE2b-256 | 04528d4a23a109c9781886c718ee5eb43cfede498303ded42c5877c743915a9b |