MOULTI
Moulti改变了你的shell脚本(bash、zsh等)在终端中显示输出的方式。 Moulti允许你将脚本输出的大量行分配到"步骤"中,即可视化的、可折叠的块,每个块都有自己的标题和颜色。
以下是使用Moulti时升级Debian系统的效果:
还不确信?如果你的Ansible剧本输出看起来像这样呢?
Moulti是为那些编写和执行shell脚本和/或Ansible剧本的人设计的工具。 特别是,如果你发现自己在脚本仍在运行时向上滚动终端以确保一切正常,那么Moulti就是为你而生的。
顺便说一下,Moulti还可以显示man页面和统一差异文件:
安装
简而言之:pipx install moulti; pipx ensurepath
更多详情请查看文档
如何使用?
概要:
- 启动Moulti实例:
moulti init
- 添加步骤:
moulti step add step_name --title='在此处输入巧妙的标题'
- 填充内容:
你的脚本执行的任何内容 | moulti pass step_name
- 重复第2步和第3步,直到你的脚本执行完毕。
通过跳转到文档来了解如何利用Moulti。
功能
如演示所示,Moulti通过问题实现用户交互:
Moulti还具有以下功能:
在外观和感觉方面,Moulti可以通过以下方式进行定制:
- 通过
moulti set
:定义Moulti步骤是向上还是向下流动:文档 - 通过Textual CSS (TCSS):文档
- 通过ANSI主题:文档
实现
Moulti使用Python编写,并利用了Textual,以及Pyperclip、 argcomplete和unidiff。
灵感来源
Moulti在很长一段时间内(可能是几年)只是一个想法。
从脚本驱动TUI元素的想法显然来自于像dialog和 whiptail这样的工具。
在某个时候,作者偶然发现了multiplex,这可能是最接近Moulti的东西。multiplex在多个方面(包括架构)被认为不够令人满意,这促使了Moulti的开发。
procmux也类似于Moulti,但并未影响其开发。
致谢
Textual框架提供了很大帮助,因此向Textual团队表示感谢,特别是:
- Will McGugan创建了它
- Dave Pearson经常提供帮助和关于Textual问题的反馈