@@ -9,9 +9,9 @@ import mkdirp from 'mkdirp';
99import path from 'path' ;
1010import readPackage from 'read-package-json' ;
1111
12- let exec = childProcess . exec ;
1312let pkg = Promise . promisify ( readPackage ) ;
1413let readFile = Promise . promisify ( fs . readFile ) ;
14+ let spawn = childProcess . spawn ;
1515let writeFile = Promise . promisify ( fs . writeFile ) ;
1616
1717const gp = gulpLoadPlugins ( ) ;
@@ -25,29 +25,27 @@ const paths = {
2525} ;
2626
2727/**
28- * Promisified child_process.exec
29- * @param cmd
30- * @param {Object } [opts={}] See child_process.exec node docs
31- * @property {stream.Writable } [opts.stdout=process.stdout] - If defined, child process stdout will be piped to it.
32- * @property {stream.Writable } [opts.stderr=process.stderr] - If defined, child process stderr will be piped to it.
33- * @returns {Promise<{ stdout: string, stderr: stderr }> }
28+ * Promisified child_process.spawn
29+ * @async
30+ * @param {String } proc - The process we want to spawn
31+ * @param {Array } args - The arguments we want to spawn the process with
32+ * @param {Object } opts - See child_process.exec node docs
33+ * @param {String } [opts.stdio=`inherit`] - spawn environment inherits parent
34+ * @return {Promise<Error> }
3435 */
35- function execp ( cmd , opts = { } ) {
36+ function spawnp ( proc , args = [ ] , opts = { stdio : `inherit` } ) {
3637 return new Promise ( ( resolve , reject ) => {
37- const child = exec ( cmd , opts ,
38- ( err , stdout , stderr ) => {
39- return err ? reject ( err ) : resolve ( {
40- "stdout" : stdout ,
41- "stderr" : stderr
42- } ) ;
43- } ) ;
38+ const child = spawn ( proc , args , opts ) ;
39+
40+ child . on ( `error` , ( err ) => {
41+ reject ( err ) ;
42+ } ) ;
4443
45- if ( opts . stdout ) {
46- child . stdout . pipe ( opts . stdout ) ;
47- }
48- if ( opts . stderr ) {
49- child . stderr . pipe ( opts . stderr ) ;
50- }
44+ child . on ( `close` , ( code ) => {
45+ if ( code === 0 ) {
46+ resolve ( ) ;
47+ }
48+ } ) ;
5149 } ) ;
5250}
5351
@@ -150,15 +148,15 @@ gulp.task(`nsp`, (cb) => {
150148} ) ;
151149
152150gulp . task ( `snyk` , ( ) => {
153- return execp ( `node_modules/.bin/snyk test` ) ;
151+ return spawnp ( `node_modules/.bin/snyk` , [ " test" , "--debug" ] ) ;
154152} ) ;
155153
156154gulp . task ( `bithound` , ( ) => {
157155 return pkg ( paths . pkg , console . log , true ) . then ( ( data ) => {
158156 let pkgName = data . name ;
159157 let pkgUser = data . repository . url . match ( / g i t h u b \. c o m \/ ( [ ^ \/ ] + ) \/ / i) [ 1 ] ;
160158
161- return execp ( `node_modules/.bin/bithound check [email protected] :${ pkgUser } /${ pkgName } .git` ) ; 159+ return spawnp ( `node_modules/.bin/bithound` , [ ` check` , ` [email protected] :${ pkgUser } /${ pkgName } .git`] ) ; 162160 } ) ;
163161} ) ;
164162
0 commit comments