kopia lustrzana https://github.com/c9/core
27 wiersze
883 B
JavaScript
27 wiersze
883 B
JavaScript
|
var fs = require("fs");
|
||
|
var tmp = require("tmp");
|
||
|
var async = require("async");
|
||
|
var dirname = require("path").dirname;
|
||
|
|
||
|
exports.writeFile = function(path, data, options, callback) {
|
||
|
if (typeof options == "function")
|
||
|
return exports.writeFile(path, data, null, options);
|
||
|
|
||
|
async.waterfall([
|
||
|
tmp.file.bind(null, {dir: dirname(path)}),
|
||
|
function(tmpFile, fd, nextOrRemoveCallback, next) {
|
||
|
if (!next) next = nextOrRemoveCallback; // api changed between tmp 0.23 and 0.24
|
||
|
fs.close(fd, function(err) {
|
||
|
next(err, tmpFile);
|
||
|
});
|
||
|
},
|
||
|
function(tmpFile, next) {
|
||
|
fs.writeFile(tmpFile, data, options, function(err) {
|
||
|
next(err, tmpFile);
|
||
|
});
|
||
|
},
|
||
|
function(tmpFile, next) {
|
||
|
fs.rename(tmpFile, path, next);
|
||
|
}
|
||
|
], callback);
|
||
|
};
|