4个版本 (重大更新)
0.4.0 | 2023年2月24日 |
---|---|
0.3.0 | 2023年2月19日 |
0.2.0 | 2023年2月19日 |
0.1.0 | 2023年2月19日 |
#828 在 Unix API
每月 22 次下载
10MB
177K SLoC
包含 (Python包,475KB) setuptools-44.1.1-py2.py3-none-any.whl,(Python包,315KB) pip-20.3.4-py2.py3-none-any.whl,(Python包,165KB) certifi-2020.6.20-py2.py3-none-any.whl,(Python包,175KB) chardet-4.0.0-py2.py3-none-any.whl,(Python包,150KB) distlib-0.3.1-py2.py3-none-any.whl,(Python包,135KB) urllib3-1.26.5-py2.py3-none-any.whl 等等.
Shunt
你是否曾想在同一个终端中运行多个命令,并希望有Docker Compose风格的日志输出?那么这个工具就是为你准备的。
在一个JSON(实际上是JSON5)文件中配置你想要的命令
// dev.json
{
commands: {
ui: ["npm", "run", "dev"],
backend: ["cargo", "run"],
},
}
运行 shunt dev.json
看到你的输出像Docker Compose一样整洁地编织在一起。
工作目录
你可以设置命令运行的工作目录,相对路径相对于 JSON配置。
{
"commands": {
"ui": {
"argv": ["npm", "run", "dev"],
"workdir": "frontend"
}
}
}
伪终端
如果 shunt
本身是在伪终端中运行的,则每个命令都在伪终端中运行。你可以通过命令上的 tty
选项禁用此功能
{
"commands": {
"example-command": {
"argv": "./build.sh",
"tty": "never"
}
}
}
tty
可以是 auto
,never
或 always
。
环境替换
不支持环境替换,你可以通过调用shell来添加此支持
{
commands: {
something: ["bash", "-c", "echo $PATH"],
},
}
待办事项
- 正确锁定stdout以消除撕裂的任何可能性。
- 添加全局选项以使用彩色前缀(这不会阻止子进程的颜色)。
- argv拆分选项,例如只需提供“echo hello”。
- (也许)能够发送输入。
依赖项
~5–14MB
~161K SLoC