diff --git a/lib/plugins/reload.js b/lib/plugins/reload.js index e452c4b..d72f53c 100644 --- a/lib/plugins/reload.js +++ b/lib/plugins/reload.js @@ -10,7 +10,8 @@ var fs = require('fs') , basename = require('path').basename - , extname = require('path').extname; + , extname = require('path').extname + , dirname = require('path').dirname; /** * Restart the server the given js `files` have changed. @@ -89,9 +90,31 @@ exports = module.exports = function(files, options){ if (stat.isDirectory()) { if (~exports.ignoreDirectories.indexOf(basename(file))) return; fs.readdir(file, function(err, files){ - files.map(function(f){ - return file + '/' + f; - }).forEach(traverse); + if (!err) { + files.map(function(f){ + return file + '/' + f; + }).forEach(traverse); + } else { + if (err.errno === 2) { + fs.readlink(file, function(err, resolvedLink) { + if (!err) { + fs.readdir(dirname(file) + '/' + resolvedLink, function(err, files){ + if(!err) { + files.map(function(f){ + return file + '/' + f; + }).forEach(traverse); + } else { + console.error('Error reading directory ' + dirname(file) + '/' + resolvedLink, err.message); + } + }); + } else { + console.log('error reading directory ' + file, err.message); + } + }); + } else { + console.log('error reading directory ' + file, err.message); + } + } }); } else { watch(file); @@ -115,7 +138,7 @@ exports = module.exports = function(files, options){ master.on('restarting', function(){ restarting = true; }); - } + }; }; /**