Crates.io | shunt |
lib.rs | shunt |
version | 0.4.0 |
source | src |
created_at | 2023-02-19 19:40:32.469054 |
updated_at | 2023-02-24 22:10:46.803535 |
description | Run multiple commands in single terminal with docker compose like logs. |
homepage | |
repository | |
max_upload_size | |
id | 789234 |
size | 20,662,095 |
Have you ever wanted to run multiple commands in the same terminal, and have Docker Compose style logs come out? Then this is the tool for you.
Configure the commands you want in a JSON (actually JSON5) file:
// dev.json
{
commands: {
ui: ["npm", "run", "dev"],
backend: ["cargo", "run"],
},
}
Run shunt dev.json
and see your output neatly woven together similar to
Docker Compose.
You can set the working directory that the command will run in, relative paths are relative to the JSON config.
{
"commands": {
"ui": {
"argv": ["npm", "run", "dev"],
"workdir": "frontend"
}
}
}
Each command is run in a pseudo-TTY if shunt
itself is run in a pseudo-TTY.
You can disable this with the tty
option on a command:
{
"commands": {
"example-command": {
"argv": "./build.sh",
"tty": "never"
}
}
}
tty
can be auto
, never
, or always
.
Environment substitution is not supported, you can add this support by calling out to a shell:
{
commands: {
something: ["bash", "-c", "echo $PATH"],
},
}