unix部署中脚本的zc.buildout配方
zc.recipe.script的Python项目详细描述
许多部署提供了将配置绑定到 软件。这样做通常是为了更容易使用特定的 软件的部署。
传统的unix文件层次结构并不能真正提供 此类脚本的共享位置;zc.recipe.deployment:script recipe 在部署的bin目录中生成这些脚本,但是 而是将生成的脚本与部署本身关联起来。
配方的选项与 egg:脚本配方,添加了所需的部署 设置。使用部署中的etc目录而不是 构建的bin目录。这允许部署特定的信息 通过初始化设置嵌入到脚本中。
让我们看一个简单的案例。我们需要一个包裹 控制台脚本入口点:
>>> write('setup.py', '''\ ... from setuptools import setup ... setup( ... name="testpkg", ... package_dir={"": "src"}, ... py_modules=["testmodule"], ... zip_safe=False, ... entry_points={ ... "console_scripts": [ ... "myscript=testmodule:main", ... ], ... }, ... ) ... ''')>>> mkdir('src') >>> write('src', 'testmodule.py', '''\ ... some_setting = "42" ... def main(): ... print some_setting ... ''')>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = . ... parts = somescript ... ... [mydep] ... recipe = zc.recipe.deployment ... prefix = %s ... user = %s ... etc-user = %s ... ... [somescript] ... recipe = zc.recipe.script ... deployment = mydep ... eggs = testpkg ... scripts = myscript ... initialization = ... import testmodule ... testmodule.some_setting = "24" ... ''' % (sample_buildout, user, user))>>> print system(join('bin', 'buildout')), # doctest: +NORMALIZE_WHITESPACE Develop: 'PREFIX/.' Installing mydep. zc.recipe.deployment: Creating 'PREFIX/etc/mydep', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/var/cache/mydep', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/var/lib/mydep', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/var/log/mydep', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/var/run/mydep', mode 750, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/etc/cron.d', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/etc/init.d', mode 755, user 'USER', group 'GROUP' zc.recipe.deployment: Creating 'PREFIX/etc/logrotate.d', mode 755, user 'USER', group 'GROUP' Installing somescript. Generated script 'PREFIX/etc/mydep/myscript'.>>> print ls("etc/mydep") drwxr-xr-x USER GROUP etc/mydep>>> cat("etc/mydep/myscript") # doctest: +NORMALIZE_WHITESPACE #!/usr/bin/python <BLANKLINE> import sys sys.path[0:0] = [ 'PREFIX/src', ] <BLANKLINE> import testmodule testmodule.some_setting = "24" <BLANKLINE> import testmodule <BLANKLINE> if __name__ == '__main__': sys.exit(testmodule.main())
发布历史记录
1.0.2(2014-08-19)
修复打包错误(包括src/zc/recipe/script/readme.txt)。
1.0.1(2014-08-19)
首次公开发行。
1.0.0(2011-12-29)
初始释放(ZC内部)。