Skip to content

Commit

Permalink
Shiny new file watcher with --watch argument
Browse files Browse the repository at this point in the history
  • Loading branch information
yakovkhalinsky committed Jan 27, 2016
1 parent 10408c3 commit f23932e
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drakov
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
process.title = 'drakov';

var drakov = require('./lib/drakov');
var watcher = require('./lib/watcher');
var args = require('./lib/arguments');

var argv = args.getArgv();
drakov.run(argv);
drakov.run(argv, function() {
watcher(argv);
});
3 changes: 3 additions & 0 deletions lib/arguments/arguments.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ module.exports = {
description: 'List all available endpoints under `/drakov`. If value of argument is a module name, it will be required and called to create a middleware function',
alias: 'D',
default: false
},
watch: {
description: 'Reload Drakov when change detected in list of source files'
}

};
31 changes: 31 additions & 0 deletions lib/watcher.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
var chokidar = require('chokidar');
require('colors');

var drakov = require('./drakov');

// Save these for replay later
var CACHED_ARGV = [];

var RESTART_COUNT = 0;

var changeHandler = function(filePath) {
++RESTART_COUNT;
console.log('[CHANGE]'.white, filePath.green, ('Restarting ' + RESTART_COUNT).blue);
drakov.stop(function(){
drakov.run(CACHED_ARGV);
});
};

module.exports = function(argv) {
if (!argv.watch) {
return;
}

console.log(' FILE SPY '.grey.inverse + ' ACTIVATE '.green.inverse);

CACHED_ARGV = argv;
var sourceFiles = argv.sourceFiles;

var watcher = chokidar.watch(sourceFiles);
watcher.on('change', changeHandler);
};
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"license": "MIT",
"dependencies": {
"async": "^1.4.2",
"chokidar": "^1.4.2",
"colors": "^1.1.0",
"express": "^4.12.3",
"glob": "^5.0.15",
Expand Down

0 comments on commit f23932e

Please sign in to comment.