Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mablay/allrun
Execute multiple commands as parallel sub-processes. Optionally, first one finished terminates the rest.
https://github.com/mablay/allrun
Last synced: 8 days ago
JSON representation
Execute multiple commands as parallel sub-processes. Optionally, first one finished terminates the rest.
- Host: GitHub
- URL: https://github.com/mablay/allrun
- Owner: mablay
- Created: 2021-06-11T10:05:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-06-11T10:25:46.000Z (over 3 years ago)
- Last Synced: 2024-10-16T02:04:11.086Z (about 1 month ago)
- Language: JavaScript
- Size: 10.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AllRun
CLI substitute for `sh -c 'cmd1 & cmd2 & ...'`
Works with linux, MacOS and Windows.Execute multiple commands in parallel.
Use `ctrl`+`c` to terminate them.Optionally
* first one finished terminates the rest
* log process ids, termination events and durationsNo dependencies!
## Installation
```sh
npm i -g allrun
```## Synopsis
```
Synopsis
usage: allcmd [-k] [-v] [ ] [-- [ ]]
usage: allnpm [-k] [-v] [ <argument>] [-- <script>[ <argument>]]
usage: allnode [-k] [-v] <file>[ <argument>] [-- <file>[ <argument>]]Options:
-k The first finished process terminates the rest
-v Print process ids, termination events and runtime durationsExample:
allcmd -kv sleep 1 -- sleep 3
```
Notice how `--` is used to separate commands.## Example usage
### Parallel CLI commands
Run two parallel cli commands in verbose mode
```sh
allcmd -v sleep 3 -- sleep 1
Spawned [24480] sleep [ '3' ]
Spawned [24481] sleep [ '1' ]
Process [24481] terminated after 1012ms
Process [24480] terminated after 3004ms
```Same as before, now the first finished process terminates the rest.
```sh
allcmd -kv sleep 1 -- sleep 10
Spawned [24441] sleep [ '10' ]
Spawned [24442] sleep [ '1' ]
Process [24442] terminated after 1006ms
Process [24441] terminated after 1008ms
```### Parallel Node scripts
```sh
allnode script.js "with a single argument" -- ./another/script.js with multiple arguments
```### Parallel npm scripts
A local installation might be more suitable using `npm i -D allrun`.
Assuming you have two long running npm scripts you want to run in parallel.
```sh
allnpm build-watch -- test-watch
```Example use in your `package.json`
```json
"script": {
"build-watch": "your watching build script",
"test-watch": "your watching test script",
"watch": "allnpm build-watch -- test-watch"
}
```