| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 'use strict';var fs = require('fs');var writeDir = require('./writeDir');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;  }  // stream it to disk yo  if (file.isStream()) {    writeStream(writePath, file, written);    return;  }  // write it like normal  if (file.isBuffer()) {    writeBuffer(writePath, file, written);    return;  }  // if no contents then do nothing  if (file.isNull()) {    cb(null, file);    return;  }}module.exports = writeContents;
 |