Skip to content

Commit ae204bb

Browse files
committed
feat(util): use promises for api
BREAKING CHANGE: fix-owner now uses Promises instead of callbacks
1 parent a004fe6 commit ae204bb

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

lib/util/fix-owner.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,44 @@
11
'use strict'
22

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'))
77

88
module.exports.chownr = fixOwner
9-
function fixOwner (filepath, uid, gid, cb) {
10-
cb = dezalgo(cb)
9+
function fixOwner (filepath, uid, gid) {
1110
if (!process.getuid) {
1211
// This platform doesn't need ownership fixing
13-
return cb()
12+
return Promise.resolve()
1413
}
1514
if (typeof uid !== 'number' && typeof gid !== 'number') {
1615
// There's no permissions override. Nothing to do here.
17-
return cb()
16+
return Promise.resolve()
1817
}
1918
if ((typeof uid === 'number' && process.getuid() === uid) &&
2019
(typeof gid === 'number' && process.getgid() === gid)) {
2120
// 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()
2822
}
23+
// cb = inflight('fixOwner: fixing ownership on ' + filepath, cb)
24+
// if (!cb) {
25+
// // We're inflight! whoosh!
26+
// return
27+
// }
2928

3029
// *now* we override perms
31-
chownr(
30+
return chownr(
3231
filepath,
3332
typeof uid === 'number' ? uid : process.getuid(),
34-
typeof gid === 'number' ? gid : process.getgid(),
35-
cb
33+
typeof gid === 'number' ? gid : process.getgid()
3634
)
3735
}
3836

3937
module.exports.mkdirfix = mkdirfix
4038
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+
}
4443
})
4544
}

0 commit comments

Comments
 (0)