gretel
Version:
Follows and collects breadcrumbs accross the web
51 lines (40 loc) • 1.18 kB
JavaScript
#!/usr/bin/env node
var program = require('commander'),
packageJson = require('./package.json'),
gretel;
function list(value) {
return value.split(',') || [];
}
program._name = packageJson.name;
program
.version(packageJson.version)
.option('-s, --startUris <uris>', 'Uri(s) to start crawling from', list)
.option('-q, --queuePath [filePath]', 'File path to load / save queue from')
.parse(process.argv);
gretel = require('./gretel')(program.startUris);
if(!program.queuePath){
program.queuePath = 'breadcrumbs.json';
}
process.on( 'SIGINT', function() {
gretel.save(program.queuePath, function(error){
if(error){
console.log(error.stack || error);
process.exit(1);
}
process.exit(0);
});
});
gretel.on('fetchcomplete', function(queueItem, data, response, callback) {
console.log(queueItem.url);
callback();
});
gretel.on('complete ', function() {
console.log( 'All breadcrumbs have been followed...' );
process.exit(0);
});
gretel.load(program.queuePath, function(error){
if(error){
return console.log(error.stack || error);
}
gretel.start();
});