plex-web-downloader/node_modules/fs.extra/fs.copy.js

50 lines
889 B
JavaScript

(function () {
"use strict";
var fs = require('fs')
;
function noop() {}
function copy(src, dst, opts, cb) {
if ('function' === typeof opts) {
cb = opts;
opts = null;
}
opts = opts || {};
function copyHelper(err) {
var is
, os
;
if (!err && !(opts.replace || opts.overwrite)) {
return cb(new Error("File " + dst + " exists."));
}
fs.stat(src, function (err, stat) {
if (err) {
return cb(err);
}
is = fs.createReadStream(src);
os = fs.createWriteStream(dst);
is.pipe(os);
os.on('close', function (err) {
if (err) {
return cb(err);
}
fs.utimes(dst, stat.atime, stat.mtime, cb);
});
});
}
cb = cb || noop;
fs.stat(dst, copyHelper);
}
module.exports = copy;
}());