Browse Source

Fix streams initialization in copyFileFallback (introduced by @unkelpehr)

ci/travis-osximage
Mani Maghsoudlou 7 years ago
parent
commit
c59e0a6e2e
  1. 16
      lib/copy/copy.js

16
lib/copy/copy.js

@ -101,13 +101,13 @@ function copyFile (srcStat, src, dest, opts, cb) {
function copyFileFallback (srcStat, src, dest, opts, cb) {
const rs = fs.createReadStream(src)
const ws = fs.createWriteStream(dest, { mode: srcStat.mode })
rs.on('error', err => cb(err))
ws.on('error', err => cb(err))
ws.on('open', () => rs.pipe(ws))
.once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))
.once('open', () => {
const ws = fs.createWriteStream(dest, { mode: srcStat.mode })
ws.on('error', err => cb(err))
.on('open', () => rs.pipe(ws))
.once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))
})
}
function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
@ -198,8 +198,8 @@ function onLink (src, dest, opts, cb) {
if (resolvedDestPath === resolvedSrcPath) return cb()
// prevent copy if src is a subdir of dest since unlinking
// dest in this case results in removing src contents
// and therefore a broken symlink will be created.
// dest in this case would result in removing src contents
// and therefore a broken symlink would be created.
fs.stat(dest, (err, st) => {
if (err) return cb(err)
if (st.isDirectory() && isSrcSubdir(resolvedDestPath, resolvedSrcPath)) {

Loading…
Cancel
Save