mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2024-11-14 23:26:18 +00:00
30 lines
749 B
JavaScript
30 lines
749 B
JavaScript
|
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)
|
||
|
})
|
||
|
})
|
||
|
}
|