Node Roundup: Pushover, Police, Raynos' Blog

30 Nov 2011 | By Alex Young | Tags node modules npm git

You can send your Node modules and articles in for review through our contact form or @dailyjs.

Pushover

Pushover (License: MIT/X11, npm: pushover) by the prolific James Halliday can serve git repositories over HTTP. James says this makes it easy to build customised git push-based deployment logic.

James’ example instantiates a server like this:

var pushover = require('pushover');
var repos = pushover(__dirname + '/repos');

repos.on('push', function (repo) {
    console.log('received a push to ' + repo);
});

repos.listen(7000);

// Run with `node example/simple.js`

And then after pushing something using git push http://localhost:7000/beep master, the server will display received a push to beep.

This works by forking the command-line git binary with ('child_process').spawn, and wrapping it with an object that descends from EventEmitter which can handle HTTP requests. It’s surprisingly simple given the possibilities it creates.

Police

Police (License: MIT/X11, npm: police) by Pavan Kumar Sunkara helps discover outdated modules in GitHub repositories based on a project’s package.json. After authenticating with GitHub, police repo or police user/repo can be used to generate a report that details missing package.json properties and old module versions.

When I tested Police out I noticed the .policeconf file gets created with permissions set to 644, so if you’re going to use this on a shared server you might want to change the permissions as it contains a GitHub authentication token.

Raynos’ Blog

When I wrote New Node Web Frameworks: Derby, Flatiron I asked people to send in web apps they’ve built using a Node web framework. Raynos sent in his blog, Raynos.org (GitHub: Raynos / raynos-blog) which appears to be based on a generic blog engine the author has previously written and released through NPM.

The blog engine is based on CouchDB, and includes some unit tests. Raynos has decided to split this Express app into routes, controllers, models, and view models. Templates are powered by the author’s trinity templating system.


blog comments powered by Disqus