]> gerrit.simantics Code Review - simantics/district.git/blob - set-user.js
4c207a6792a6f42be9d1ac78873527de3e6c8ee5
[simantics/district.git] / set-user.js
1 module.exports = setUser
2
3 var assert = require("assert")
4 var path = require("path")
5 var fs = require("fs")
6 var mkdirp = require("mkdirp")
7
8 function setUser (cb) {
9   var defaultConf = this.root
10   assert(defaultConf !== Object.prototype)
11
12   // If global, leave it as-is.
13   // If not global, then set the user to the owner of the prefix folder.
14   // Just set the default, so it can be overridden.
15   if (this.get("global")) return cb()
16   if (process.env.SUDO_UID) {
17     defaultConf.user = +(process.env.SUDO_UID)
18     return cb()
19   }
20
21   var prefix = path.resolve(this.get("prefix"))
22   mkdirp(prefix, function (er) {
23     if (er) return cb(er)
24     fs.stat(prefix, function (er, st) {
25       defaultConf.user = st && st.uid
26       return cb(er)
27     })
28   })
29 }