gpt4 book ai didi

plone - 你能在你的 Plone 产品中定义一个入口点来运行一个脚本,就好像它被 bin/instance run 调用一样

转载 作者:行者123 更新时间:2023-12-05 00:34:36 25 4
gpt4 key购买 nike

我有一个批处理作业,我需要偶尔针对我的 Plone 实例运行。它需要访问我的 Plone 产品中的代码和其他 Plone 代码并查询目录。我已将脚本包含在我的 Plone 产品中,目前通过以下方式运行它

bin/instance run <path to script in eggs directory>

显然,如果我的产品出现新版本,我需要更改路径以指向新版本的蛋。我想要做的是在我的产品的 setup.py 中为脚本定义任何入口点,然后使用类似 zc.recipe.egg 的构建配方这样我就可以跑了
bin/myscript

我如何做到这一点并仍然提供我的脚本访问顶级 app对象和安装在我的 Plone 实例中的所有代码?

最佳答案

从 Zope 2.13 开始,您可以为 zopectl.command 注册脚本。入口点。这些将被视为 bin/instance 上的新命令。 Controller 脚本。

例如,以下内容会将您的 egg 中的可调用对象与命令联系起来:

[zopectl.command]
mybatch = example.egg.commands:mybatch

您的可调用对象将传递根级应用程序对象,以及剩余的命令行参数:

def mybatch(app, args):
site = app.mysiteid
# remember to set up your site correctly (create request, call hooks, etc)

使用 args 为您的脚本实现命令行开关。

Configuring and Running Zope documentation ;请注意,您的命令名称不能在名称中使用破折号 ( - )。

关于plone - 你能在你的 Plone 产品中定义一个入口点来运行一个脚本,就好像它被 bin/instance run 调用一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10511955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com