用于创建plone包的plone cli

plonecli的Python项目详细描述


https://secure.travis-ci.org/plone/plonecli.png?branch=masterCoverallsLatest VersionPyPI - Python Version

plone cli

https://github.com/plone/plonecli/blob/master/docs/plone_cli_logo.svg

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

文件

最终用户的完整文档可以在“docs”文件夹中找到,这在某些时候可以在plone文档中找到。

注意:您可以为bob先生的问题设置默认答案,请参见bobtemplates.plone README

使用量

可用命令

$ 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
    1. 对于独立模板,depend_on属性为none
    2. 对于子模板,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]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
缺少java MIMessage附件   java试图从JSON数组向数据库插入数据   铸造java。util。ArrayList无法转换为java。util。矢量   在到达末尾后从头开始读取csv文件(Java、OpenCSV)   Java swing如何在另一个线程中打开框架   java如何为集合正确编写此比较器。排序(arrayList、comparator)?   JavaOOD将配置传递给外部类的最佳方式   java不确定如何使用switch语句从main()调用要运行的方法   java循环菜单以在选择后显示   java将位置对象转换为地址(谷歌地图)   java Hazel cast客户端端口问题   使用JarJar重新打包工具的java   使用Java Netscape目录LDAP API和二进制筛选器值   java如何从Google App Engine下载应用程序源文件   java如何居中javafx场景图“摄影机”   java调用servlet而不提交并停留在同一个JSP页面中   将文本文件加载到HashMap<Integer,List<String>>java中   JavaFX平台。重新加载站点后运行更高版本()