summaryrefslogtreecommitdiff
path: root/deps/npm/lib/search/all-package-metadata.js
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2019-07-24 23:00:03 -0700
committerMichaƫl Zasso <targos@protonmail.com>2019-08-06 09:05:32 +0200
commitd7d321b071789f08c65dbb11a0e4b3b6a299af44 (patch)
tree1015b8c5da3632fc986b56051a4853ac946c56f4 /deps/npm/lib/search/all-package-metadata.js
parent37d27486fce50bd82b6b5095af880d435ed308f8 (diff)
downloadandroid-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.tar.gz
android-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.tar.bz2
android-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.zip
deps: upgrade npm to 6.10.2
PR-URL: https://github.com/nodejs/node/pull/28853 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Diffstat (limited to 'deps/npm/lib/search/all-package-metadata.js')
-rw-r--r--deps/npm/lib/search/all-package-metadata.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/deps/npm/lib/search/all-package-metadata.js b/deps/npm/lib/search/all-package-metadata.js
index 5883def5c7..a006dadadd 100644
--- a/deps/npm/lib/search/all-package-metadata.js
+++ b/deps/npm/lib/search/all-package-metadata.js
@@ -217,7 +217,7 @@ function extractUpdated (entryStream, label, opts) {
// be output from it.
module.exports._createCacheWriteStream = createCacheWriteStream
function createCacheWriteStream (cacheFile, latest, opts) {
- return _ensureCacheDirExists(cacheFile, opts).then(() => {
+ return _ensureCacheDirExists(cacheFile, opts).then(({uid, gid}) => {
log.silly('all-package-metadata', 'creating output stream')
const outStream = _createCacheOutStream()
const cacheFileStream = writeStreamAtomic(cacheFile)
@@ -231,19 +231,31 @@ function createCacheWriteStream (cacheFile, latest, opts) {
let errEmitted = false
linkStreams(inputStream, outStream, () => { errEmitted = true })
- cacheFileStream.on('close', () => !errEmitted && outStream.end())
+ cacheFileStream.on('close', () => {
+ if (!errEmitted) {
+ if (typeof uid === 'number' &&
+ typeof gid === 'number' &&
+ process.getuid &&
+ process.getgid &&
+ (process.getuid() !== uid || process.getgid() !== gid)) {
+ chownr.sync(cacheFile, uid, gid)
+ }
+ outStream.end()
+ }
+ })
return ms.duplex.obj(inputStream, outStream)
})
}
+// return the {uid,gid} that the cache should have
function _ensureCacheDirExists (cacheFile, opts) {
var cacheBase = path.dirname(cacheFile)
log.silly('all-package-metadata', 'making sure cache dir exists at', cacheBase)
return correctMkdir(opts.cache).then(st => {
return mkdir(cacheBase).then(made => {
return chownr(made || cacheBase, st.uid, st.gid)
- })
+ }).then(() => ({ uid: st.uid, gid: st.gid }))
})
}