3 var fs = require('fs');
4 var writeDir = require('./writeDir');
5 var writeStream = require('./writeStream');
6 var writeBuffer = require('./writeBuffer');
8 function writeContents(writePath, file, cb) {
9 var written = function(err) {
10 var done = function(err) {
17 if (!file.stat || typeof file.stat.mode !== 'number') {
21 fs.stat(writePath, function(err, st) {
25 // octal 7777 = decimal 4095
26 var currentMode = (st.mode & 4095);
27 if (currentMode === file.stat.mode) {
30 fs.chmod(writePath, file.stat.mode, done);
34 // if directory then mkdirp it
35 if (file.isDirectory()) {
36 writeDir(writePath, file, written);
40 // stream it to disk yo
41 if (file.isStream()) {
42 writeStream(writePath, file, written);
46 // write it like normal
47 if (file.isBuffer()) {
48 writeBuffer(writePath, file, written);
52 // if no contents then do nothing
59 module.exports = writeContents;