用于创建plone包的plone cli
plonecli的Python项目详细描述
plone cli
a plone cli用于创建plone包
plone cli用于开发plone包,我们不会添加在生产环境中安装或运行plone的函数。为此,我们应该构建另一个包,比如*plonect,它将提供安装和部署功能。默认情况下,它还支持git,以跟踪使用模板所做的更改。*
安装
我们在全局用户站点包中安装plonecli,以便在多表项目中使用它。
比0.1.1b4更新的版本可以像任何其他带有pip的包一样安装:
$ pip install plonecli --user $ plonecli -l
升级plonecli只需执行以下操作:
$ pip install -U plonecli --user Note: Make sure that the install directory is in $PATH ( e.g. export PATH=$PATH:$HOME/.local/bin/ )
注: 我们现在使用的是单击库的原始版本,请在安装新版本的plonecli之前卸载ploneclick。
如果要将plonecli与pipenv一起使用,您可以按以下步骤操作:
$ mkdir cli $cd cli $ pipenv install plonecli $ pipenv shell $ plonecli -l
bash自动完成
要启用自动完成,plonecli提供了plonecli_autocomplete.sh脚本,请将以下bash命令放入bashrc中:
如果您在用户全局软件包中安装了plonecli:
$ . ~/.local/bin/plonecli_autocomplete.sh
如果您在virtualenv中安装了plonecli,它是:
$ . /path/to/your/virtualenv/bin/plonecli_autocomplete.sh
如果使用pipenv安装plonecli,则必须在以下时间之前找到virtualenv的路径:
$ pipenv --virtualenv /home/maik/.local/share/virtualenvs/pe-WnXOnVWH . /home/maik/.local/share/virtualenvs/pe-WnXOnVWH/bin/plonecli_autocomplete.sh
使用量
可用命令
$ plonecli --help Usage: plonecli [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]... Plone Command Line Interface (CLI) Options: -l, --list-templates -V, --versions -h, --help Show this message and exit. Commands: build Bootstrap and build the package buildout Run the package buildout config Configure mr.bob global settings create Create a new Plone package debug Run the Plone client in debug mode requirements Install the local package requirements serve Run the Plone client in foreground mode test Run the tests in your package virtualenv Create/update the local virtual environment...
创建plone加载项
$ plonecli -l
Available mr.bob templates:
- addon
- behavior
- content_type
- portlet
- theme
- theme_barceloneta
- view
- viewlet
- vocabulary
- buildout
- theme_package [deprecated] >> Please use the theme_barceloneta subtemplate!
$ plonecli create addon src/collective.todo
向Plone加载项添加功能
您可以通过子模板添加不同的功能。您还可以使用它们的multible time来创建同一类型的不同特性,比如两种不同的内容类型。
$cd collective.todo $ plonecli add behavior $ plonecli add content_type $ plonecli add theme $ plonecli add view $ plonecli add viewlet $ plonecli add vocabulary
构建包
$ plonecli build
这将运行:
$ virtualenv . $ ./bin/pip install -r requirements.txt --upgrade $ ./bin/buildout
在目标目录中。
您始终可以使用virtualenv、``requirements`、buildout而不是build显式地运行这3个步骤。 如果要重置生成,请在生成时使用--clean选项。 这将在安装需求之前清除virtualenv,并使用-n运行buildout以获取最新版本。
运行应用程序
$ plonecli serve
运行应用程序测试
$ plonecli test
或运行特定测试:
$ plonecli test -t test_the_thing
或运行所有测试,包括机器人测试:
$ plonecli test --all
组合命令
您可以这样组合以上步骤:
$ plonecli create addon src/collective.todo build test --all serve
开发者指南
设置开发人员环境
$ git clone https://github.com/plone/plonecli/
$cd plonecli
$ virtualenv .
$source bin/activate
$ pip install -r requirements.txt
$ python setup.py develop
$ plonecli --help
运行测试
您可以使用以下命令运行测试:
$ tox
或者安装py.test并直接运行测试而不使用tox:
$ py.test test/
或一次测试:
$ py.test test/ -k test_get_package_root
为plonecli注册您的bobtemplates包
通过在setup.py中添加一个入口点,可以为plonecli注册所有mr.bob模板。
以下是bobtemplates.plone包的入口点:
entry_points={'mrbob_templates':['plone_addon = bobtemplates.plone.bobregistry:plone_addon','plone_buildout = bobtemplates.plone.bobregistry:plone_buildout',# NOQA E501'plone_theme_package = bobtemplates.plone.bobregistry:plone_theme_package',# NOQA E501'plone_content_type = bobtemplates.plone.bobregistry:plone_content_type',# NOQA E501'plone_theme = bobtemplates.plone.bobregistry:plone_theme','plone_vocabulary = bobtemplates.plone.bobregistry:plone_vocabulary',# NOQA E501],},
入口点名称用作bob先生的全局模板名称。 您还需要为每个入口点提供一个bobregistry.py文件,该文件应以入口点名称命名:
# -*- coding: utf-8 -*-classRegEntry(object):def__init__(self):self.template=''self.plonecli_alias=''self.depend_on=Noneself.deprecated=Falseself.info=''# standalone templatedefplone_addon():reg=RegEntry()reg.template='bobtemplates.plone:addon'reg.plonecli_alias='addon'returnreg# sub templatedefplone_theme():reg=RegEntry()reg.template='bobtemplates.plone:theme'reg.plonecli_alias='theme'reg.depend_on='plone_addon'returnreg
对于每个模板,在bobregistry.py中添加一行到入口点并定义一个方法,该方法将返回具有某些属性的注册表对象。
- template-包含实际mr.bob模板的名称。
- plonecli_alias-定义template将在plonecli中使用
- depend_on:
- 对于独立模板,depend_on属性为none
- 对于子模板,depend包含父独立模板的名称,通常是addon。
- deprecated-布尔值,表示此模板是否已弃用,并将在以后的版本中删除
- info-当模板被弃用时将显示在模板旁边的消息
许可证
此项目是根据BSD许可证授权的。
历史
1.1(2019-04-14)
- 添加新的构建选项-p以定义用于virtualenv的python二进制文件 [探戈先生]
1.0(2019-03-08)
- 将包含安装目录的注释添加到$path [fgrcon]
- 记录新的不推荐的和信息选项 [勘误]
- 使python 3支持的代码现代化 [探戈先生]
0.3.0(2018-10-17)
- 在-list templates/-l命令输出中对模板排序 [探戈先生]
- 显示模板列表中模板的不推荐标志和信息 [探戈先生]
- 使用现在发布的>;=7.0版本中的单击库,升级前必须卸载ploneclick! [探戈先生]
0.2.2(2018-08-13)
- 在test命令中添加-t和-s选项 [Kakshay21]
- 修复33 configparser.nooptionerror [Kakshay21]
0.2.1(2018-07-09)
- 添加plonecli config命令以配置mrbob的全局用户设置 [Kakshay21]
- add versions-v/-versions命令 [Kakshay21]
- 在自述文件中添加文档赞扬-h,-v,test和config [Kakshay21]
0.2.0(2018-04-03)
- 添加test命令以允许从plonecli运行测试 [探戈先生]
0.1.1(2018-03-28)
- 使用颜色改进命令行输出并删除详细选项 [探戈先生]
- 根据需要添加virtualenv并改进自述文件 [探戈先生]
0.1.1b6(2018-03-28)
- 修复顶级命令的自动插入 [探戈先生]
0.1.1b5(2018-03-27)
- 使用bobtemplates.plone>;=3.0.0b5 [探戈先生]
0.1.1b4(2018-03-26)
- 现在使用click库的分叉版本(ploneclick)作为依赖项 [探戈先生]
0.1.1b3(2018-03-23)
- 修复损坏的释放
0.1.1b2(2018-03-22)
- 固定PYPI上的距离
0.1.1b1(2018-03-22)
- 添加Requirements.txt引用特殊点击版本。 这使得pip安装成为可能。 [詹森]
- 重构注册表以使用新的bobtemplate.cfg [探戈先生]
0.1.0a4(2017-10-30)
- 为bash自动完成提供plonecli_autocomplete.sh [探戈先生]
- 修复对bobtemplates.plone的依赖,我们需要>;=3.0.0a3 [探戈先生]
0.1.0a3(2017-10-24)
- 更新自述以使用easy_install而不是pip [探戈先生]
0.1.0a2(2017-10-24)
- 修复setup.py以使用github版本的click,直到click>;6.7发布 [探戈先生]
0.1.0a1(2017-10-24)
- 支持列表模板和bobtemplates.plone集成的初始版本 [Tango先生,Tmassman,Gomez]