aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/tar/lib/replace.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-04-05 22:51:49 +0200
committerAnna Henningsen <anna@addaleax.net>2018-04-05 23:00:02 +0200
commite37effe4cec98688e75d770f4d0b7f68927e2b73 (patch)
treee7efa0fc8a2139f9aba4b66ea3f3613262f20cef /deps/npm/node_modules/tar/lib/replace.js
parent026f6b787a7a23597790f1f0b076c58a68c7c38b (diff)
downloadandroid-node-v8-e37effe4cec98688e75d770f4d0b7f68927e2b73.tar.gz
android-node-v8-e37effe4cec98688e75d770f4d0b7f68927e2b73.tar.bz2
android-node-v8-e37effe4cec98688e75d770f4d0b7f68927e2b73.zip
Revert "deps: upgrade npm to 5.8.0"
This reverts commit 25a816dcda7b1db0929501acfe13f2fe5119759b. PR-URL: https://github.com/nodejs/node/pull/19837 Reviewed-By: Gus Caplan <me@gus.host>
Diffstat (limited to 'deps/npm/node_modules/tar/lib/replace.js')
-rw-r--r--deps/npm/node_modules/tar/lib/replace.js40
1 files changed, 16 insertions, 24 deletions
diff --git a/deps/npm/node_modules/tar/lib/replace.js b/deps/npm/node_modules/tar/lib/replace.js
index 44126d1f85..aac6b57fa8 100644
--- a/deps/npm/node_modules/tar/lib/replace.js
+++ b/deps/npm/node_modules/tar/lib/replace.js
@@ -5,7 +5,6 @@ const hlo = require('./high-level-opt.js')
const Pack = require('./pack.js')
const Parse = require('./parse.js')
const fs = require('fs')
-const fsm = require('fs-minipass')
const t = require('./list.js')
const path = require('path')
@@ -40,8 +39,6 @@ const replaceSync = (opt, files) => {
let threw = true
let fd
- let position
-
try {
try {
fd = fs.openSync(opt.file, 'r+')
@@ -54,6 +51,7 @@ const replaceSync = (opt, files) => {
const st = fs.fstatSync(fd)
const headBuf = Buffer.alloc(512)
+ let position
POSITION: for (position = 0; position < st.size; position += 512) {
for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {
@@ -80,24 +78,21 @@ const replaceSync = (opt, files) => {
if (opt.mtimeCache)
opt.mtimeCache.set(h.path, h.mtime)
}
- threw = false
- streamSync(opt, p, position, fd, files)
+ p.on('data', c => {
+ fs.writeSync(fd, c, 0, c.length, position)
+ position += c.length
+ })
+ p.on('end', _ => fs.closeSync(fd))
+
+ addFilesSync(p, files)
+ threw = false
} finally {
if (threw)
try { fs.closeSync(fd) } catch (er) {}
}
}
-const streamSync = (opt, p, position, fd, files) => {
- const stream = new fsm.WriteStreamSync(opt.file, {
- fd: fd,
- start: position
- })
- p.pipe(stream)
- addFilesSync(p, files)
-}
-
const replace = (opt, files, cb) => {
files = Array.from(files)
const p = new Pack(opt)
@@ -155,24 +150,21 @@ const replace = (opt, files, cb) => {
const promise = new Promise((resolve, reject) => {
p.on('error', reject)
- let flag = 'r+'
const onopen = (er, fd) => {
- if (er && er.code === 'ENOENT' && flag === 'r+') {
- flag = 'w+'
- return fs.open(opt.file, flag, onopen)
- }
-
- if (er)
+ if (er) {
+ if (er.code === 'ENOENT')
+ return fs.open(opt.file, 'w+', onopen)
return reject(er)
-
+ }
fs.fstat(fd, (er, st) => {
if (er)
return reject(er)
getPos(fd, st.size, (er, position) => {
if (er)
return reject(er)
- const stream = new fsm.WriteStream(opt.file, {
+ const stream = fs.createWriteStream(opt.file, {
fd: fd,
+ flags: 'r+',
start: position
})
p.pipe(stream)
@@ -182,7 +174,7 @@ const replace = (opt, files, cb) => {
})
})
}
- fs.open(opt.file, flag, onopen)
+ fs.open(opt.file, 'r+', onopen)
})
return cb ? promise.then(cb, cb) : promise