File tree Expand file tree Collapse file tree 1 file changed +22
-16
lines changed
Expand file tree Collapse file tree 1 file changed +22
-16
lines changed Original file line number Diff line number Diff line change @@ -16,26 +16,32 @@ function run(cmd, opts) {
1616 }
1717 } , opts ) ;
1818
19- var child ;
20- var parts = shellQuote . parse ( cmd ) ;
21- try {
22- child = childProcess . spawn ( _ . head ( parts ) , _ . tail ( parts ) , {
23- cwd : opts . cwd ,
24- stdio : opts . pipe ? "inherit" : null
25- } ) ;
26- } catch ( e ) {
27- return Promise . reject ( e ) ;
28- }
29- opts . callback ( child ) ;
30-
3119 return new Promise ( function ( resolve , reject ) {
32- child . on ( 'error' , function ( err ) {
20+ var child ;
21+ var parts = shellQuote . parse ( cmd ) ;
22+ try {
23+ child = childProcess . spawn ( _ . head ( parts ) , _ . tail ( parts ) , {
24+ cwd : opts . cwd ,
25+ stdio : opts . pipe ? 'inherit' : null
26+ } ) ;
27+ } catch ( e ) {
28+ return Promise . reject ( e ) ;
29+ }
30+
31+ opts . callback ( child ) ;
32+
33+ function errorHandler ( err ) {
34+ child . removeListener ( 'close' , closeHandler ) ;
3335 reject ( err ) ;
34- } ) ;
36+ }
3537
36- child . on ( 'close' , function ( exitCode ) {
38+ function closeHandler ( exitCode ) {
39+ child . removeListener ( 'error' , errorHandler ) ;
3740 resolve ( exitCode ) ;
38- } ) ;
41+ }
42+
43+ child . once ( 'error' , errorHandler ) ;
44+ child . once ( 'close' , closeHandler ) ;
3945 } ) ;
4046}
4147
You can’t perform that action at this time.
0 commit comments