diff options
Diffstat (limited to 'deps/node/deps/npm/lib/config/set-user.js')
-rw-r--r-- | deps/node/deps/npm/lib/config/set-user.js | 29 |
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) + }) + }) +} |