diff options
author | Rebecca Turner <me@re-becca.org> | 2018-04-20 18:26:37 -0700 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2018-05-24 23:24:45 -0700 |
commit | 468ab4519e1b92473acefb22801497a1af6aebae (patch) | |
tree | bdac1d062cd4b094bde3a21147bab5d82c792ece /deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js | |
parent | ac8226115e2192a7a46ba07789fa5136f74223e1 (diff) | |
download | android-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.tar.gz android-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.tar.bz2 android-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.zip |
deps: upgrade npm to 6.1.0
PR-URL: https://github.com/nodejs/node/pull/20190
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Diffstat (limited to 'deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js')
-rw-r--r-- | deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js new file mode 100644 index 0000000000..7000bff048 --- /dev/null +++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js @@ -0,0 +1,44 @@ +'use strict' + +const BB = require('bluebird') + +const chownr = BB.promisify(require('chownr')) +const mkdirp = BB.promisify(require('mkdirp')) +const inflight = require('promise-inflight') + +module.exports.chownr = fixOwner +function fixOwner (filepath, uid, gid) { + if (!process.getuid) { + // This platform doesn't need ownership fixing + return BB.resolve() + } + if (typeof uid !== 'number' && typeof gid !== 'number') { + // There's no permissions override. Nothing to do here. + return BB.resolve() + } + if ((typeof uid === 'number' && process.getuid() === uid) && + (typeof gid === 'number' && process.getgid() === gid)) { + // No need to override if it's already what we used. + return BB.resolve() + } + return inflight( + 'fixOwner: fixing ownership on ' + filepath, + () => chownr( + filepath, + typeof uid === 'number' ? uid : process.getuid(), + typeof gid === 'number' ? gid : process.getgid() + ).catch({code: 'ENOENT'}, () => null) + ) +} + +module.exports.mkdirfix = mkdirfix +function mkdirfix (p, uid, gid, cb) { + return mkdirp(p).then(made => { + if (made) { + return fixOwner(made, uid, gid).then(() => made) + } + }).catch({code: 'EEXIST'}, () => { + // There's a race in mkdirp! + return fixOwner(p, uid, gid).then(() => null) + }) +} |