跳转到主要内容

zc.buildout recipe for scripts in Unix deployments

项目描述

许多部署提供将配置与软件结合的脚本。这通常是为了使与特定软件部署一起工作更容易。

传统的Unix文件层次结构实际上并没有为这些脚本提供一个很好的共享位置;zc.recipe.deployment:script配方在部署的bin目录中生成这些脚本,但我们更希望生成的脚本与部署本身相关联。

该配方的选项与zc.recipe.egg:script配方的选项相同,但增加了必需的部署设置。使用部署的etc目录而不是buildout的bin目录。这允许通过初始化设置将特定于部署的信息嵌入到脚本中。

让我们看看一个简单的例子。我们需要一个带有console_script条目点的包

>>> 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内部)。

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解安装包的更多信息。

源分发

zc.recipe.script-1.0.2.tar.gz (4.7 kB 查看哈希值)

上传时间 源码

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面