|
1 |
| -var la = require('lazy-ass') |
2 |
| -var check = require('check-more-types') |
| 1 | +'use strict' |
3 | 2 |
|
4 |
| -var q = require('q') |
5 |
| -var fs = require('fs') |
6 |
| -var S = require('spots') |
7 |
| -var debug = require('debug')('chdir-promise') |
| 3 | +const Promise = require('bluebird') |
| 4 | +const la = require('lazy-ass') |
| 5 | +const is = require('check-more-types') |
| 6 | + |
| 7 | +const exists = require('fs').existsSync |
| 8 | +const debug = require('debug')('chdir-promise') |
8 | 9 |
|
9 | 10 | // stack
|
10 |
| -var folders = [] |
| 11 | +const folders = [] |
11 | 12 |
|
12 | 13 | function _to (folderName) {
|
13 |
| - la(check.unemptyString(folderName), 'missing git repo folder') |
14 |
| - la(fs.existsSync(folderName), 'cannot find folder', folderName) |
| 14 | + la(is.unemptyString(folderName), 'missing git repo folder') |
| 15 | + la(exists(folderName), 'cannot find folder', folderName) |
15 | 16 |
|
16 |
| - var current = process.cwd() |
17 |
| - la(check.unemptyString(folderName), 'missing folder') |
| 17 | + const current = process.cwd() |
| 18 | + la(is.unemptyString(folderName), 'missing folder') |
18 | 19 | process.chdir(folderName)
|
19 |
| - debug('chdir to folder', process.cwd()) |
| 20 | + debug('chdir jumped to folder', process.cwd()) |
20 | 21 |
|
21 | 22 | folders.push(current)
|
22 | 23 |
|
23 | 24 | return current
|
24 | 25 | }
|
25 | 26 |
|
26 | 27 | function comeBack () {
|
27 |
| - if (!folders.length) { |
| 28 | + if (is.empty(folders)) { |
28 | 29 | return Promise.resolve()
|
29 | 30 | }
|
30 |
| - var folder = folders.pop() |
| 31 | + const folder = folders.pop() |
31 | 32 | process.chdir(folder)
|
32 | 33 | debug('restored folder', folder)
|
33 | 34 | return Promise.resolve(folder)
|
34 | 35 | }
|
35 | 36 |
|
| 37 | +const chdirTo = folderName => { |
| 38 | + return Promise.try(() => { |
| 39 | + return _to(folderName) |
| 40 | + }) |
| 41 | +} |
| 42 | + |
36 | 43 | module.exports = {
|
37 |
| - to: S(q.try, _to, S), |
| 44 | + to: chdirTo, |
38 | 45 | back: comeBack,
|
39 | 46 | from: comeBack
|
40 | 47 | }
|
0 commit comments