refactored folder copying to account for the posibility of the destination folder not existing

This commit is contained in:
Andrew Davidson 2015-12-01 21:16:28 -05:00
parent a3cb6e5626
commit be1c09ebd1

View file

@ -1,30 +1,43 @@
var async = require('async');
var fs = require('fs'); var fs = require('fs');
var ncp = require('ncp').ncp; var ncp = require('ncp').ncp;
var mkdirp = require('mkdirp');
// Function to copy over the static folder to generated directory if // Function to copy over the static folder to generated directory if
// it has a earlier modified time. // it has a earlier modified time.
var generateStatic = function(cb) { var generateStatic = function(cb) {
var sourceFolder = 'data/static'; var sourceFolder = 'data/static';
var destFolder = 'generated/static'; var destFolder = 'generated/static';
async.parallel({
sourceMtime: function(cb) { console.log('Getting stats for '+destFolder);
console.log('Getting stats for '+sourceFolder); fs.stat(destFolder, function(err, dstats) {
if (err) {
console.log(err);
if (err.code == "ENOENT") {
console.log(destFolder + ' does not exist.');
ncp(sourceFolder, destFolder, function(err) {
if (!err) {
console.log(sourceFolder+' copied to '+destFolder);
cb(null);
}
else {
cb(err);
}
});
}
else {
cb(err);
}
}
else {
console.log(destFolder+' mtime: '+dstats.mtime);
console.log('Getting stats for '+destFolder);
fs.stat(sourceFolder, function(err, sstats) { fs.stat(sourceFolder, function(err, sstats) {
if (err) console.log(err); if (err) console.log(err);
console.log(sourceFolder+' mtime: '+sstats.mtime); console.log(sourceFolder+' mtime: '+sstats.mtime);
cb(null, sstats.mtime); cb(null, sstats.mtime);
});
}, if (sstats.mtime > dstats.mtime) {
destMtime: function(cb) {
console.log('Getting stats for '+destFolder);
fs.stat(destFolder, function(err, dstats) {
if (err) console.log(err);
console.log(destFolder+' mtime: '+dstats.mtime);
cb(null, dstats.mtime);
});
}
}, function(err, results) {
if (results.sourceMtime > results.destMtime) {
console.log(destFolder+' is older than '+sourceFolder); console.log(destFolder+' is older than '+sourceFolder);
fs.unlink(destFolder, function(err) { fs.unlink(destFolder, function(err) {
console.log(destFolder+' deleted.'); console.log(destFolder+' deleted.');
@ -43,6 +56,8 @@ var generateStatic = function(cb) {
console.log(destFolder+' is not older than '+sourceFolder+' ignoring...'); console.log(destFolder+' is not older than '+sourceFolder+' ignoring...');
} }
}); });
}
});
} }
exports.generateStatic = generateStatic; exports.generateStatic = generateStatic;