rcktship
v1.0.6
Published
A lightweight library the runs an arbitrary series of shell commands on both local and remote hosts.
Downloads
15
Maintainers
Readme
rcktship 🚀
Rcktship is a lightweight node.js library used for easily running a series of commands on both your local machine and remote hosts. This is an ideal library for small scale deployments.
Rcktship is heavily inspired by Fabric, which is also a remote command runner written in Python.
Usage
# Install rcktship CLI globally
$ npm install -g rcktship
# or
$ yarn global add rcktship
# or in your project
$ npm install --save-dev rcktship
# or
$ yarn add -D rcktship
# Launch your first rocketship!
$ rocket <target> [mission] [options]
# or locally
$ ./node_modules/.bin/rocket <target> [mission] [options]
Rcktship will look for a top level rcktship.js
file in your project, but you can explicitly define a config file by passing in --config
The rocket target is the host, or list of hosts, that you wish to run the mission on. Targets are defined in your rcktship.js file.
A mission is analogous to a Fabric task, which is a predefined set of commands you wish to run.
You must provide a target for your rocket, but you do not have to provide a mission. If you do not provide a mission rcktship will look for a default mission.
Sample rcktship.js
file
const rocket = require('rcktship');
rocket.target('prod', [{
"host": "[email protected]",
"port": 22,
"username": "foobar",
"privateKey": "/Users/foobar",
"passphrase": "*****"
}]);
rocket.mission('default', async () => {
console.log('Default mission!');
await rocket.remote('hostname');
});
rocket.mission('pwd', async () => {
await rocket.local('pwd');
await rocket.remote('pwd');
});
To run the above missions:
# Run default task
$ rocket prod
# Run pwd task
$ rocket prod pwd
Connection objects used for targets are ConnectConfig from SSH2. Look there for any documentation on connection configurations.
Development
git clone [email protected]:jerkeeler/rcktship.git
yarn install
yarn start
Make any code changes, add tests, manually test your changes, then submit a pull request.
Testing
yarn test
Rcktship uses jest to do all testing and test coverage. Along with ts-jest for the TypeScript support.