hook-line-sinker

0.0.2 • Public • Published

Hook Line Sinker

Hook line sinker is an autodeploy server built for simplicity and modularity.

Disclaimer

This project is very early on, has limited testing and the api may very well change in the future. Feel free to send along a pull request or submit bugs. The more help the merrier.

There are a number of limitations with this project. These limitations include (but are not limited to): only pulling down and running the master branch, not allowing more than one server/port, and not allowing npm start as a start script. There is also a security risk that currently anyone can hit the exposed endpoint to pull down the latest code (e.g. /repo/{name of repo}). We currently do nothing to protect the server from thrashing after having the endpoint hit n times.

Use

The most important part of the options is the repo.url. This allows you to specify a url and have it automagically cloned, installed, and started. The start script for each repo is set as node index.js by default, but can be overwritten in the repo object. The port option sets which port you want to have hook-line-sinker running on (preferrably one that you won't have your server(s) running on).

var options = 
{
	verbose:true,			   // Verbose sends all logs to the console (default - true)
	port:	 8001,             // port for hook-line-sinker to listen on
	repo:					   // array containing repo info
	[
		{
			url:'git@github.com:sean17/personal-site.git',
			start: 'node index.js dev',
			install: 'npm i'
		}
	]
}

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

Advanced

Hook Line Sinker uses event emitters to allow you to track the state of your server deploy and add additional functionality. Current events you can listen for are: commit, pulled, installed, started; all of which pass the in action. Additionally, there is a log event for showing all of the logs from hook-line-sinker.

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

	hook.on('commit', function(result)
	{
		...
	});

You can even use create your own events that you listen to:

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

	hook.emit('tested', function(result)
	{
		...
	});

	hook.on('tested', function(result)
	{
		...
	});

Package Sidebar

Install

npm i hook-line-sinker

Weekly Downloads

2

Version

0.0.2

License

BSD-2-Clause

Last publish

Collaborators

  • seanzawi