pur
Version:
Alias and glob powered multi-threaded shell execution
80 lines (57 loc) • 1.84 kB
Markdown
# pur
Alias and glob powered asynchronous shell execution.

The main margin is color in alternating colors to help distinguish the outputs
of each command. The secondary margin is colored to help distinguish output
types: stdout and stdin is colored gray, while stderr is colored red.
## Installation
```
npm install -g pur
```
## Usage
Basic usage:
```
pur [glob or alias] command [--save alias]
```
### Examples
#### Globbing
Run ls in each directory inside the `~/ipython` folder:
```
pur ~/ipython/*/ ls
```
Run ls in each directory inside both the `~/ipython` and `~/jupyter` folders:
```
pur ~/{ipython,jupyter}/*/ ls
```
### Path shortcuts
To save a shortcut for the glob results, append `--save <shortcut>` at the end of
your command.
Run ls in and save the `~/ipython/*/` folders as the shortcut `ipy`:
```
pur ~/ipython/*/ ls --save ipy
```
Now you can use the `ipy` shortcut instead of typing `~/ipython/*/`:
```
pur ipy ls
```
### Default shortcut
If you use a path set very frequently, you can save it as a `default` shortcut.
This will make pur use it when no other path is specified.
Run ls in each directory inside both the `~/ipython` and `~/jupyter` folders,
and save the folders as the `default`:
```
pur ~/{ipython,jupyter}/*/ ls --save default
```
Now, when no path is specified, the `~/ipython` and `~/jupyter` subfolders will
be used. The following command is now a short version of the above:
```
pur ls
```
### Alias resolution
On operating systems that support bash aliases (OSX and Linux tested), pur will
attempt to resolve the first word in your command as an alias. For example, on
my machine I have `co` registered as an alias for `git checkout`. To checkout
origin/master in all the directories of my `default` shortcut I can run:
```
pur co origin/master
```