node/deps/npm/lib/config/set-user.js

30 lines
749 B
JavaScript
Raw Normal View History

2014-06-06 06:18:15 +08:00
module.exports = setUser
2014-11-05 07:08:12 +08:00
var assert = require("assert")
var path = require("path")
var fs = require("fs")
var mkdirp = require("mkdirp")
2014-06-06 06:18:15 +08:00
function setUser (cb) {
2014-08-01 00:05:30 +08:00
var defaultConf = this.root
assert(defaultConf !== Object.prototype)
2014-06-06 06:18:15 +08:00
// 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"))
2014-11-05 07:08:12 +08:00
mkdirp(prefix, function (er) {
if (er) return cb(er)
fs.stat(prefix, function (er, st) {
defaultConf.user = st && st.uid
return cb(er)
})
2014-06-06 06:18:15 +08:00
})
}