Skip to content

Commit

Permalink
code cleanups in dest logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Contra committed Dec 28, 2014
1 parent 2692230 commit f081c21
Showing 1 changed file with 30 additions and 33 deletions.
63 changes: 30 additions & 33 deletions lib/dest/writeContents/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,53 +6,50 @@ var writeStream = require('./writeStream');
var writeBuffer = require('./writeBuffer');

function writeContents(writePath, file, cb) {
var written = function(err) {
var done = function(err) {
cb(err, file);
};
if (err) {
return done(err);
}

if (!file.stat || typeof file.stat.mode !== 'number') {
return done();
}

fs.stat(writePath, function(err, st) {
if (err) {
return done(err);
}
// octal 7777 = decimal 4095
var currentMode = (st.mode & 4095);
if (currentMode === file.stat.mode) {
return done();
}
fs.chmod(writePath, file.stat.mode, done);
});
};

// if directory then mkdirp it
if (file.isDirectory()) {
writeDir(writePath, file, written);
return;
return writeDir(writePath, file, written);
}

// stream it to disk yo
if (file.isStream()) {
writeStream(writePath, file, written);
return;
return writeStream(writePath, file, written);
}

// write it like normal
if (file.isBuffer()) {
writeBuffer(writePath, file, written);
return;
return writeBuffer(writePath, file, written);
}

// if no contents then do nothing
if (file.isNull()) {
cb(null, file);
return;
return complete();
}

function complete(err) {
cb(err, file);
}

function written(err) {
if (err) {
return complete(err);
}

if (!file.stat || typeof file.stat.mode !== 'number') {
return complete();
}

fs.stat(writePath, function(err, st) {
if (err) {
return complete(err);
}
// octal 7777 = decimal 4095
var currentMode = (st.mode & 4095);
if (currentMode === file.stat.mode) {
return complete();
}
fs.chmod(writePath, file.stat.mode, complete);
});
}
}

Expand Down

0 comments on commit f081c21

Please sign in to comment.