|
1 | 1 | 'use strict'
|
2 | 2 |
|
3 |
| -var chownr = require('chownr') |
4 |
| -var dezalgo = require('dezalgo') |
5 |
| -var inflight = require('inflight') |
6 |
| -var mkdirp = require('mkdirp') |
| 3 | +const Promise = require('bluebird') |
| 4 | + |
| 5 | +const chownr = Promise.promisify(require('chownr')) |
| 6 | +const mkdirp = Promise.promisify(require('mkdirp')) |
7 | 7 |
|
8 | 8 | module.exports.chownr = fixOwner
|
9 |
| -function fixOwner (filepath, uid, gid, cb) { |
10 |
| - cb = dezalgo(cb) |
| 9 | +function fixOwner (filepath, uid, gid) { |
11 | 10 | if (!process.getuid) {
|
12 | 11 | // This platform doesn't need ownership fixing
|
13 |
| - return cb() |
| 12 | + return Promise.resolve() |
14 | 13 | }
|
15 | 14 | if (typeof uid !== 'number' && typeof gid !== 'number') {
|
16 | 15 | // There's no permissions override. Nothing to do here.
|
17 |
| - return cb() |
| 16 | + return Promise.resolve() |
18 | 17 | }
|
19 | 18 | if ((typeof uid === 'number' && process.getuid() === uid) &&
|
20 | 19 | (typeof gid === 'number' && process.getgid() === gid)) {
|
21 | 20 | // No need to override if it's already what we used.
|
22 |
| - return cb() |
23 |
| - } |
24 |
| - cb = inflight('fixOwner: fixing ownership on ' + filepath, cb) |
25 |
| - if (!cb) { |
26 |
| - // We're inflight! whoosh! |
27 |
| - return |
| 21 | + return Promise.resolve() |
28 | 22 | }
|
| 23 | + // cb = inflight('fixOwner: fixing ownership on ' + filepath, cb) |
| 24 | + // if (!cb) { |
| 25 | + // // We're inflight! whoosh! |
| 26 | + // return |
| 27 | + // } |
29 | 28 |
|
30 | 29 | // *now* we override perms
|
31 |
| - chownr( |
| 30 | + return chownr( |
32 | 31 | filepath,
|
33 | 32 | typeof uid === 'number' ? uid : process.getuid(),
|
34 |
| - typeof gid === 'number' ? gid : process.getgid(), |
35 |
| - cb |
| 33 | + typeof gid === 'number' ? gid : process.getgid() |
36 | 34 | )
|
37 | 35 | }
|
38 | 36 |
|
39 | 37 | module.exports.mkdirfix = mkdirfix
|
40 | 38 | function mkdirfix (p, uid, gid, cb) {
|
41 |
| - mkdirp(p, function (err, made) { |
42 |
| - if (err || !made) { return cb(err, made) } |
43 |
| - fixOwner(made, uid, gid, cb) |
| 39 | + return mkdirp(p).then(made => { |
| 40 | + if (made) { |
| 41 | + return fixOwner(made, uid, gid).then(() => made) |
| 42 | + } |
44 | 43 | })
|
45 | 44 | }
|
0 commit comments