超级简单终端命令发射器生成器
easy-menu的Python项目详细描述
超级简单终端命令启动程序生成器
功能
简化您的日常终端操作!
您是否有任何常规任务,如登录到服务器、部署、故障排除或类似的任务?
这个小工具将有助于加快您的操作和防止人为错误。 这不仅对有经验的工程师有帮助,而且对不熟练的操作人员也有帮助。
依赖关系
- 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
Operation | Command |
---|---|
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