1 | var Q = require('q')
|
2 | var exec = require('child_process').exec
|
3 | var verify = require('check-more-types').verify
|
4 | var debug = require('debug')('ggit')
|
5 |
|
6 | function execPromise (cmd, verbose) {
|
7 | verify.unemptyString(cmd, 'missing command to execute')
|
8 | debug(cmd)
|
9 |
|
10 | var deferred = Q.defer()
|
11 | exec(cmd, function (err, stdout, stderr) {
|
12 | if (verbose) {
|
13 | console.log('exec result')
|
14 | console.log('working folder:', process.cwd())
|
15 | console.log('cmd:', cmd)
|
16 | console.log('err:', err)
|
17 | console.log('stdout:', stdout)
|
18 | console.log('stderr:', stderr)
|
19 | }
|
20 |
|
21 | if (err) {
|
22 | debug('error running command "%s"', cmd)
|
23 | debug(err.message)
|
24 | return deferred.reject(stderr)
|
25 | }
|
26 | deferred.resolve(stdout)
|
27 | })
|
28 | return deferred.promise
|
29 | }
|
30 |
|
31 | module.exports = execPromise
|