构建用于执行python或shell脚本的配方
metapensiero.recipe.script的Python项目详细描述
这个模块实现了两个简单的方法来执行一个shell脚本(实际上batch m$-windows下的脚本)或python脚本。
两个配方都有两个选项,install和update:都被认为是 语句,每行一个,将写入一个临时文件中 分别在安装或更新配方时。其中一个可能不见了 这种情况下,这一特定步骤不会发生任何事情
当要执行的命令依赖于平台时,可以使用选项指定它们 install-linux或install-win32的优先级高于泛型表单。
shell脚本
metapensiero.recipe.script:shell配方由ShellScript类实现, 可按以下方式使用:
[config] recipe = metapensiero.recipe.script:shell ini = config.ini install = ${buildout:bin-directory}/soladmin create-config ${:ini}
如前所述,有时要执行的命令取决于它们运行的特定平台。在 在这种情况下,您可以说:
[config] recipe = metapensiero.recipe.script:shell ini = config.ini install = ${buildout:bin-directory}/soladmin create-config ${:ini} install-win32 = ${buildout:bin-directory}/soladmin create-config ${:ini} echo Configuration created! pause
python脚本
metapensiero.recipe.script:python配方由^{tt8}实现$ 上课它更强大一些,因为它可以很容易地访问整个构建 配置
考虑以下示例:
[start_script] recipe = metapensiero.recipe.script:python install = >>> import sys >>> from os.path import join >>> basedir = buildout['buildout']['directory'] >>> bindir = buildout['buildout']['bin-directory'] >>> script = join(basedir, 'sol.bat' if sys.platform=='win32' else 'sol.sh') >>> config = join(basedir, buildout['config']['ini']) >>> with open(script, 'w') as f: >>> if sys.platform == 'win32': >>> f.write('@echo off\n') >>> f.write('%s %s\n' % (join(bindir, 'solserver'), config)) >>> installed = script
如您所见,脚本可以通过buildoutlocal访问其他节设置 变量,包含整个构建配置的字典另一个局部变量 是options,另一个包含配方设置的字典。
脚本可以设置installed变量,该变量可以是一个简单的标量字符串值 或字符串序列:它将用作配方的结果,通常是 配方本身安装的文件/目录列表,当 配方已从配置中删除
使用鸡蛋
如果Python脚本使用额外的egg,则可以使用eggs选项指定它们,如 在以下示例中:
[extjs] recipe = metapensiero.recipe.script:python eggs = metapensiero.extjs.desktop install = >>> from metapensiero.extjs.desktop.scripts.extjs_dl import download_and_extract, URL >>> download_and_extract(URL)
更改
1.2(2014-03-08)
- 简单测试套件
- 修复python脚本中已安装内容的返回问题
1.1(2014-03-08)
- pypi上的第一个版本
1.0(2014-03-08)
- 初始版本,从solista中提取