From 697dd6ae71fd68f177fcedfa8b124854fb8faf35 Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Thu, 29 Mar 2012 15:39:41 -0700 Subject: [PATCH 1/2] whitespace --- lib/filechangeemitter.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/filechangeemitter.js b/lib/filechangeemitter.js index cf113f2..7c69eaf 100644 --- a/lib/filechangeemitter.js +++ b/lib/filechangeemitter.js @@ -10,7 +10,7 @@ * Module dependencies. */ -var fs = require('fs'), +var fs = require('fs'), EventEmitter = require('events').EventEmitter, basename = require('path').basename, extname = require('path').extname; @@ -29,22 +29,22 @@ var fs = require('fs'), */ var FileChangeEmitter = exports.FileChangeEmitter = function(files, options){ - + var self = this; EventEmitter.call(this); - + options = options || {}; var interval = options.interval || 100, extensions = options.extensions || ['.js'], openStat = 0; - + self.files = 0; - + if (!files) files = process.execPath; if (!Array.isArray(files)) files = [files]; //files.forEach(traverse); traverse( files, watch ); - + // traverse file if it is a directory // otherwise setup the watcher function traverse( files, fileCallback, level ) { @@ -78,13 +78,13 @@ var FileChangeEmitter = exports.FileChangeEmitter = function(files, options){ } }); } - + // remove listeners function unwatch(file) { self.files--; fs.unwatchFile( file ); } - + self.close = function(){ traverse( files, unwatch ); }; From 8313d62eab365146ddcb68a9e1324d0cdec112a7 Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Thu, 29 Mar 2012 15:42:22 -0700 Subject: [PATCH 2/2] fixed scope problem --- lib/filechangeemitter.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/filechangeemitter.js b/lib/filechangeemitter.js index 7c69eaf..0e75693 100644 --- a/lib/filechangeemitter.js +++ b/lib/filechangeemitter.js @@ -50,13 +50,13 @@ var FileChangeEmitter = exports.FileChangeEmitter = function(files, options){ function traverse( files, fileCallback, level ) { //file = master.resolve(file); if ( !level ) level = 0; - for ( var i = 0; i < files.length; i++ ){ - var file = files[i]; + + function do_file(file) { fs.stat( file, function( err, stat ){ if ( !err ) { if ( stat.isDirectory() ) { - fs.readdir( file, function( err, files ){ - traverse( files.map( function( f ){ + fs.readdir( file, function( err, dirFiles ){ + traverse( dirFiles.map( function( f ){ return file + '/' + f; }), fileCallback, level+1 ); }); @@ -66,6 +66,10 @@ var FileChangeEmitter = exports.FileChangeEmitter = function(files, options){ } }); } + + for ( var i = 0; i < files.length; i++ ){ + do_file(files[i]); + } } // watch file for changes