Longrun
Run set of commands in group of directories. Based on runny.
Install
npm i longrun -g
How to use?
$ longrun
usage: longrun [command] [options]
Commands:
init Init runner
add Add current directory to runner
run Run commands from ~/.longrun.json
remove Remove current directory from runner
list List all runners
clear Clear directories list from runners
finish Remove runner(s)
Options:
-v, --version Show version [boolean]
-h, --help Show help [boolean]
Use example
First thing first, you should init new runner:
$ longrun init master -c "pwd"
Lets list what we have in master
runner:
$ longrun list master
* master
> pwd
| ~/longrun
Great. Now lets add another directory:
$ cd ../cloudcmd
$ longrun add master
$ longrun list master
* master
> pwd
| ~/longrun
| ~/cloudcmd
Now we can execute master
runner with:
$ longrun run master
/home/coderaiser/longrun
/home/coderaiser/cloudcmd
Nice! Lets add one more runner to make things more fun:
$ longrun init who -c whoami
$ longrun list
master
who
And execute it:
$ longrun run -a
/home/coderaiser/longrun
/home/coderaiser/cloudcmd
coderaiser
As you see you can add as much runners as you wish, and run one or all of them.
How it works?
From the inside ~/.longrun.json
it is just an array of runny
objects that could be easily edited with text editor:
[{
"command": "pwd",
"directories": [
"~/longrun",
"~/cloudcmd"
]
}, {
"command": "whoami",
"directories": [
"~/cloudcmd"
]
}]
Programmatical use
const longrun = require('longrun');
const runner = longrun([{
command: 'pwd',
directories: [
'~/longrun',
'~/cloudcmd',
],
}]);
runner.on('data', (data) => process.stdout.write(data))
.on('error', (error) => process.stderr.write(error))
.on('exit', () => console.log('exit'));
Special Thanks
- Olena Zalitok for logo.
License
MIT