Skip to content
/ too Public

Combine multiple commands' stream, keep all foreground and kill all in one Ctrl+C

License

Notifications You must be signed in to change notification settings

otiai10/too

Repository files navigation

too

Node.js CI codecov Maintainability npm version

The opposite of tee command, combining stdout/stderr from multiple commands and kill them with one signal (Ctrl+C).

-> command 1 stream ─┐
-> command 2 stream ─┤
                     └─ stdout/stderr/SIGINT to kill both

It means, you can write 2 parallel jobs in 1 npm script!!

// package.json
{
    "scripts": {
        "start": "too --cmd 'rails s' --cmd 'webpack'"
        // Start server and client HMR in parallel,
        // and you can kill both by one Ctrl+C!!
    },
}

Why?

Sometimes we do that,

% nohup rails server &
% nohup npm start-webpack &

# after you did some work

% pkill rails
% pkill webpack

I don't wanna do this any more, just wanna run multiple processes and kill them with one Ctrl+C!

Usage

% too --cmd 'rails server' --cmd 'npm start-webpack'

Then you will get

[0] rails   # Rails log here
[1] npm     # NPM log here

# And you can kill both by one `Ctrl+C` (SIGINT)

Too files

Or you can define your tasks on a yaml file

# too.local.yaml
main:
    jobs:
    - run: rails server
    - run: npm start-webpack

then

% too ./too.local.yaml

Install

% npm install too

Issues

About

Combine multiple commands' stream, keep all foreground and kill all in one Ctrl+C

Resources

License

Stars

Watchers

Forks

Packages

No packages published