一种动态可扩展的命令shell

cloudmesh-cmd5的Python项目详细描述


CloudMesh CMD5

DOIVersionLicensePythonFormatFormatTravis

安装和文档

请注意,有几个包裹在 安装文件。

Links
Documentationhttps://cloudmesh.github.io/cloudmesh-cloud
Codehttps://github.com/cloudmesh/cloudmesh-cloud
Installation Instructionshttps://github.com/cloudmesh/get

一个动态可扩展的命令shell。适用范围广泛 文档请参见

在这里我们还记录了如何使用pyenv virtualenv。

要求

  • python大于等于3.7.3
  • python大于等于2.7.15

cloudmesh能够在早期版本的python上运行,但是我们更喜欢 在最新版本上测试。

建议在安装cloudmesh之前先使用pyenv或venv。这个 将确保在用户空间中安装了CMD5的版本。

使用virtualenv或pyenv设置virtualenv。 我们有一个关于cloudmesh类的教程,用于 皮恩夫。pyenv很容易通过

$ curl https://pyenv.run | bash

将以下行添加到.bashrc或.bash_配置文件中

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

有关更多信息,请参见我们的手册

CMD5外壳和命令行

要运行shell,可以使用cms命令激活它。CMS看台 对于CloudMesh外壳:

$ cms

它将打印横幅并输入外壳:

+-------------------------------------------------------+
|   ____ _                 _                     _      |
|  / ___| | ___  _   _  __| |_ __ ___   ___  ___| |__   |
| | |   | |/ _ \| | | |/ _` | '_ ` _ \ / _ \/ __| '_ \  |
| | |___| | (_) | |_| | (_| | | | | | |  __/\__ \ | | | |
|  \____|_|\___/ \__,_|\__,_|_| |_| |_|\___||___/_| |_| |
+-------------------------------------------------------+
|                  Cloudmesh CMD5 Shell                 |
+-------------------------------------------------------+

cms>

要查看命令列表,您可以说:

cms> help

要查看特定命令的手册页,请使用::

help COMMANDNAME

CMD 5插件机制

CMD5有一个复杂的插件机制。命令可以很容易 根据sys命令设计。

sys命令可以从源(如前所述)安装,也可以 通过PIP

$ pip install cloudmesh-sys

安装后,执行cms help sys查看用法。现在你 只需在新目录中执行sys命令,如下所示 mycommnad不是要实现的命令的名称。

$ mkdir mycommand
$ cd mycommand
$ cms sys command generate mycommand

将生成名为cloudmesh-mycommand的目录,其中包含 命令的模板。您可以输入此模板并修改 在文件夹中实现cloudmesh/mycommand/apicloudmesh/mycommand/command使用

安装时
$ pip install .

该命令将添加到cms命令中>;

bar命令的示例如下:

它显示了命令定义的简单程度(bar.py):

from __future__ import print_function
from cloudmesh.shell.command import command
from cloudmesh.shell.command import PluginCommand

class BarCommand(PluginCommand):

    @command
    def do_bar(self, args, arguments):
        """        ::          Usage:                command -f FILE                command FILE                command list          This command does some useful things.          Arguments:              FILE   a file name          Options:              -f      specify the file        """
        print(arguments)

与其他CMD解决方案的一个重要区别是 可以利用(除了标准定义之外),docopts作为 定义手册页。这允许我们使用参数作为dict和 使用simple if条件解释命令。使用docopts有 贡献者被迫考虑命令的优点 以及它的选项并从一开始就记录下来。以前我们用过 不使用docopts,使用argparse。但是我们注意到 一些贡献导致了命令不正确 文档化的或开发人员提供的含糊不清的命令 导致用户混淆和错误使用。因此,我们 建议您使用docopts。

转换由@command修饰符启用 还有手册页,并为shell创建适当的帮助消息 自动。因此无需单独介绍帮助 方法中通常需要的方法。

功能

提供以下突出显示的功能:

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

推荐PyPI第三方库


热门话题
tomcat Java条带错误   java OPENTSDB fsck修复程序不更正重复点   java JavaFX在控制器内切换自身的可见性   java maven surefire插件未并行执行运行程序   读取导致Freemarker模板引擎中TemplateException的Java对象   无法使Java库与我的Android应用程序一起工作   安卓 java。lang.IllegalStateException游标   使用Java检索XML文件中的XSL URL和名称   java如何从文本文件集合中提取特定值   电子邮件java mail gmail   java为什么finalize()只被垃圾收集器调用一次?   java方法findViewById(int)对于Json类型是未定义的。蛇形   java在安卓中尝试从brother打印机打印位图时遇到以下异常   java在颤振中支持Kotlin的优势   java从后面编写文本   java制作列表。第一个列表可以有相同的数字,第二个将是价格,尝试制作第三个列表,如果它们是相同的数字,它将添加价格