summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/gentle-fs/lib/chown.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/gentle-fs/lib/chown.js')
-rw-r--r--deps/npm/node_modules/gentle-fs/lib/chown.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/npm/node_modules/gentle-fs/lib/chown.js b/deps/npm/node_modules/gentle-fs/lib/chown.js
new file mode 100644
index 0000000000..5921e56345
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/lib/chown.js
@@ -0,0 +1,24 @@
+'use strict'
+
+// A module for chowning things we just created, to preserve
+// ownership of new links and directories.
+
+const chownr = require('chownr')
+
+const selfOwner = {
+ uid: process.getuid && process.getuid(),
+ gid: process.getgid && process.getgid()
+}
+
+module.exports = (path, uid, gid, cb) => {
+ if (selfOwner.uid !== 0 ||
+ uid === undefined || gid === undefined ||
+ (selfOwner.uid === uid && selfOwner.gid === gid)) {
+ // don't need to, or can't chown anyway, so just leave it.
+ // this also handles platforms where process.getuid is undefined
+ return cb()
+ }
+ chownr(path, uid, gid, cb)
+}
+
+module.exports.selfOwner = selfOwner