Run multiple processes from a single terminal.
npm install jointly --save-dev
Create a configuration jointly.config.json
(or jointly.config.js
) with tasks that should be executed:
[
{
"command": "ping",
"args": ["google.com"]
},
{
"command": "ping",
"args": ["amazon.com"]
}
]
To start tasks run:
jointly
You can explicitly pass a configuration file path:
jointly another.config.json
Each task supports following options:
command
- The shell command to execute.
args
- The array of CLI arguments to pass to the command.
id
- The unique ID of the task.
dependencies
- The array of task IDs that must be resolved before this task.
resolveStrategy = 'start'
-
Determines when the task is considered fulfilled and allows its dependants to start:
'start'
then dependants start immediately after this command is started.'exit'
then dependents start only after the command exits.- The callback that receives a line that command printed to the stdout and returns
true
if dependent tasks should be started, orfalse
otherwise.
rejectStrategy = 'auto'
-
Determines when the task is considered failed:
'auto'
then the task is failed if the command exit code isn't 0.'never'
then the task is never failed.- The callback that returns
true
is the task must be considered failed for a particular exit code.
cwd
- The current working directory of the child process.
env
-
The object with environment key-value pairs. By default,
process.env
is passed to a spawned task process. argv0
-
Explicitly set the value of
argv[0]
sent to the child process. This will be set tocommand
if not specified. uid
- Sets the user identity of the process.
gid
- Sets the group identity of the process.
shell = false
-
If
false
, then no shell is available. Iftrue
, runs command inside of a shell. Uses'/bin/sh'
on Unix, andprocess.env.ComSpec
on Windows. A different shell can be specified as a string. See Shell requirements and Default Windows shell. windowsVerbatimArguments = false
-
No quoting or escaping of arguments is done on Windows. Ignored on Unix. This is set to
true
automatically when shell is specified and is CMD. killSignal = 'SIGINT'
- The signal value to be used when the spawned process will be killed by the abort signal.
timeout
- In milliseconds the maximum amount of time the process is allowed to run.