summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/lib/config/set-user.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/lib/config/set-user.js')
-rw-r--r--deps/node/deps/npm/lib/config/set-user.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/deps/node/deps/npm/lib/config/set-user.js b/deps/node/deps/npm/lib/config/set-user.js
new file mode 100644
index 00000000..14cc21d2
--- /dev/null
+++ b/deps/node/deps/npm/lib/config/set-user.js
@@ -0,0 +1,29 @@
+module.exports = setUser
+
+var assert = require('assert')
+var path = require('path')
+var fs = require('fs')
+var mkdirp = require('mkdirp')
+
+function setUser (cb) {
+ var defaultConf = this.root
+ assert(defaultConf !== Object.prototype)
+
+ // If global, leave it as-is.
+ // If not global, then set the user to the owner of the prefix folder.
+ // Just set the default, so it can be overridden.
+ if (this.get('global')) return cb()
+ if (process.env.SUDO_UID) {
+ defaultConf.user = +(process.env.SUDO_UID)
+ return cb()
+ }
+
+ var prefix = path.resolve(this.get('prefix'))
+ mkdirp(prefix, function (er) {
+ if (er) return cb(er)
+ fs.stat(prefix, function (er, st) {
+ defaultConf.user = st && st.uid
+ return cb(er)
+ })
+ })
+}