超级简单终端命令发射器生成器

easy-menu的Python项目详细描述


超级简单终端命令启动程序生成器

PyPI versionBuild StatusBuild StatusCoverage StatusLicense'Stories in Ready'

功能

简化您的日常终端操作!

您是否有任何常规任务,如登录到服务器、部署、故障排除或类似的任务?

这个小工具将有助于加快您的操作和防止人为错误。 这不仅对有经验的工程师有帮助,而且对不熟练的操作人员也有帮助。

https://raw.githubusercontent.com/wiki/mogproject/easy-menu/img/demo.gif

依赖关系

  • Python:2.6/2.7/3.2/3.3/3.4/3.5
  • 皮亚姆
  • Jinja2==2.6
  • mog-commons

快速启动

您只需两个命令行就可以尝试简易菜单。

pip install easy-menu
easy-menu http://git.io/vGWla

注意:http://git.io/vGWla将重定向到https://raw.githubusercontent.com/mogproject/easy-menu/master/easy-menu.example.yml

安装

  • pip命令可能需要sudo
OperationCommand
Install^{tt5}$
Upgrade^{tt6}$
Uninstall^{tt7}$
Check installed version^{tt8}$
Help^{tt9}$
  • 然后,将配置写入文件easy-menu.yml

请参阅下面的示例。

配置示例

easy-menu.example.yml

Main Menu:
  - Service health check: "echo Condition all green!"
  - Check hardware resources: "echo Hardware resources OK."
  - Server Login Menu:
    - Login to server-1: "echo logging into server-1"
    - Login to server-2: "echo logging into server-2"
    - Login to server-3: "echo logging into server-3"
  - Web Service Management Menu:
    - Check the status of web service: "echo Check web service status"
    - Start web service: "echo Start web service"
    - Stop web service: "echo Stop web service"
  - Reboot this server: "echo Reboot OS"

每个菜单(即根菜单和子菜单)和每个项都表示为mapping,它只包含一个键值对。 如果其值为sequence,则将生成子菜单。

一般语法如下。

meta:                            # Some meta variables are available
  META_KEY: META_VALUE

ROOT_MENU_TITLE:
  - ITEM_DESCRIPTION: COMMAND
  - ITEM_DESCRIPTION: COMMAND
  - SUB_MENU_TITLE:              # You can create sub menu if you need.
    - ITEM_DESCRIPTION: COMMAND
    - ITEM_DESCRIPTION: COMMAND
    - SUB_MENU_TITLE:            # More nested menu
      - ITEM_DESCRIPTION: COMMAND
      - ITEM_DESCRIPTION: COMMAND
  - ITEM_DESCRIPTION:            # You can write a list of command lines for one item.
      - COMMAND1
      - COMMAND2
      - COMMAND3
  - include: INCLUDE_FILE_PATH   # "include" keyword enables to load
                                 #   another configuration file.
  - eval: COMMAND                # "eval" keyword will execute command line
                                 #   and use its output as configuration YAML string.

记住,这些命令是在将当前目录更改为默认保存配置文件的目录后执行的。

您可以在this directory中找到更多示例。

查找路径

Vagrant类似,当您运行任何easy-menu命令时,easy menu从当前目录中的第一个目录树开始向上爬升,查找它可以找到的第一个easy-menu.yml。 因此,如果您在/home/mogproject/projects/foo中运行easy-menu,它将按照easy-menu.yml的顺序搜索以下路径,直到找到一个为止:

/home/mogproject/projects/foo/easy-menu.yml
/home/mogproject/projects/easy-menu.yml
/home/mogproject/easy-menu.yml
/home/easy-menu.yml
/easy-menu.yml

此功能允许您从项目中的任何目录运行easy-menu

通过将EASY_MENU_CONFIG环境变量设置为其他名称,可以更改配置文件的默认名称。

审核日志记录

无论何时执行命令,结果(返回代码)都将记录到操作系统中的syslog工具中。 此功能在Windows操作系统上不可用。

示例:

Aug 31 00:09:59 ullr.local easy-menu[28802]: [INFO] Command started: echo Condition all green!
Aug 31 00:09:59 ullr.local easy-menu[28802]: [INFO] Command ended with return code: 0

继续

需要更多帮助吗?

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

推荐PyPI第三方库


热门话题
java如何用新列表替换ListView的列表   swing Java JFrame布局   java JNativehook未捕获密码   java JPA仅获取一级关联   java KeyListener是否停止使用动作或鼠标Listener?   shell如何在Ubuntu中安装java   java如何通过使用会话检索数据来跳过空值。冬眠   java如何在jsp中获取列表   java Android仅在位置(0,0)上缩放,而不是在整个图像上缩放   Java for循环格式化控制台   协议缓冲区Protobuf Java不区分大小写映射?   java模拟对象,并将它们分配给方法中的实例和静态变量   java是否可以在执行时看到对对象的所有引用?   wcf Java客户端和InstanceContextMode   java我在XMLGregorianCalendar中的“20170526T04:08:00.000+05:30”中有一个日期,我需要将其转换为20170526T04:08:00.000z   java如何让两个小程序共享字段   java保留CSS注释而不修改YUI压缩器中的内容   java Android(Kotlin)具有非字符串基元类型的双向数据绑定   Java swing:warning组合框是原始类型。对泛型类型JComboBox<E>的引用应参数化