diff options
author | isaacs <i@izs.me> | 2019-07-24 23:00:03 -0700 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2019-08-06 09:05:32 +0200 |
commit | d7d321b071789f08c65dbb11a0e4b3b6a299af44 (patch) | |
tree | 1015b8c5da3632fc986b56051a4853ac946c56f4 /deps/npm/lib/search/all-package-metadata.js | |
parent | 37d27486fce50bd82b6b5095af880d435ed308f8 (diff) | |
download | android-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.js | 18 |
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 })) }) } |