@@ -2,7 +2,6 @@ import Q = require('q');
2
2
import os = require( 'os' ) ;
3
3
import events = require( 'events' ) ;
4
4
import child = require( 'child_process' ) ;
5
- import stream = require( 'stream' ) ;
6
5
import im = require( './internal' ) ;
7
6
import fs = require( 'fs' ) ;
8
7
@@ -194,27 +193,27 @@ export class ToolRunner extends events.EventEmitter {
194
193
return cmd ;
195
194
}
196
195
197
- private _processLineBuffer ( data : Buffer , strBuffer : string , onLine : ( line : string ) => void ) : void {
196
+ private _processLineBuffer ( data : Buffer , buffer : string , onLine : ( line : string ) => void ) : string {
197
+ let newBuffer = buffer + data . toString ( ) ;
198
+
198
199
try {
199
- var s = strBuffer + data . toString ( ) ;
200
- var n = s . indexOf ( os . EOL ) ;
200
+ let eolIndex = newBuffer . indexOf ( os . EOL ) ;
201
201
202
- while ( n > - 1 ) {
203
- var line = s . substring ( 0 , n ) ;
202
+ while ( eolIndex > - 1 ) {
203
+ const line = newBuffer . substring ( 0 , eolIndex ) ;
204
204
onLine ( line ) ;
205
205
206
206
// the rest of the string ...
207
- s = s . substring ( n + os . EOL . length ) ;
208
- n = s . indexOf ( os . EOL ) ;
207
+ newBuffer = newBuffer . substring ( eolIndex + os . EOL . length ) ;
208
+ eolIndex = newBuffer . indexOf ( os . EOL ) ;
209
209
}
210
-
211
- strBuffer = s ;
212
210
}
213
211
catch ( err ) {
214
212
// streaming lines to console is best effort. Don't fail a build.
215
213
this . _debug ( 'error processing line' ) ;
216
214
}
217
215
216
+ return newBuffer ;
218
217
}
219
218
220
219
/**
@@ -728,20 +727,20 @@ export class ToolRunner extends events.EventEmitter {
728
727
}
729
728
} ) ;
730
729
731
- var stdbuffer : string = '' ;
730
+ let stdLineBuffer = '' ;
732
731
cp . stdout ?. on ( 'data' , ( data : Buffer ) => {
733
732
this . emit ( 'stdout' , data ) ;
734
733
735
734
if ( ! optionsNonNull . silent ) {
736
735
optionsNonNull . outStream ! . write ( data ) ;
737
736
}
738
737
739
- this . _processLineBuffer ( data , stdbuffer , ( line : string ) => {
738
+ stdLineBuffer = this . _processLineBuffer ( data , stdLineBuffer , ( line : string ) => {
740
739
this . emit ( 'stdline' , line ) ;
741
740
} ) ;
742
741
} ) ;
743
742
744
- var errbuffer : string = '' ;
743
+ let errLineBuffer = '' ;
745
744
cp . stderr ?. on ( 'data' , ( data : Buffer ) => {
746
745
this . emit ( 'stderr' , data ) ;
747
746
@@ -751,7 +750,7 @@ export class ToolRunner extends events.EventEmitter {
751
750
s . write ( data ) ;
752
751
}
753
752
754
- this . _processLineBuffer ( data , errbuffer , ( line : string ) => {
753
+ errLineBuffer = this . _processLineBuffer ( data , errLineBuffer , ( line : string ) => {
755
754
this . emit ( 'errline' , line ) ;
756
755
} ) ;
757
756
} ) ;
@@ -769,12 +768,12 @@ export class ToolRunner extends events.EventEmitter {
769
768
this . _debug ( 'rc:' + code ) ;
770
769
returnCode = code ;
771
770
772
- if ( stdbuffer . length > 0 ) {
773
- this . emit ( 'stdline' , stdbuffer ) ;
771
+ if ( stdLineBuffer . length > 0 ) {
772
+ this . emit ( 'stdline' , stdLineBuffer ) ;
774
773
}
775
774
776
- if ( errbuffer . length > 0 ) {
777
- this . emit ( 'errline' , errbuffer ) ;
775
+ if ( errLineBuffer . length > 0 ) {
776
+ this . emit ( 'errline' , errLineBuffer ) ;
778
777
}
779
778
780
779
if ( code != 0 && ! optionsNonNull . ignoreReturnCode ) {
@@ -926,20 +925,20 @@ export class ToolRunner extends events.EventEmitter {
926
925
}
927
926
} ) ;
928
927
929
- var stdbuffer : string = '' ;
928
+ let stdLineBuffer = '' ;
930
929
cp . stdout ?. on ( 'data' , ( data : Buffer ) => {
931
930
this . emit ( 'stdout' , data ) ;
932
931
933
932
if ( ! optionsNonNull . silent ) {
934
933
optionsNonNull . outStream ! . write ( data ) ;
935
934
}
936
935
937
- this . _processLineBuffer ( data , stdbuffer , ( line : string ) => {
936
+ stdLineBuffer = this . _processLineBuffer ( data , stdLineBuffer , ( line : string ) => {
938
937
this . emit ( 'stdline' , line ) ;
939
938
} ) ;
940
939
} ) ;
941
940
942
- var errbuffer : string = '' ;
941
+ let errLineBuffer = '' ;
943
942
cp . stderr ?. on ( 'data' , ( data : Buffer ) => {
944
943
this . emit ( 'stderr' , data ) ;
945
944
@@ -949,7 +948,7 @@ export class ToolRunner extends events.EventEmitter {
949
948
s . write ( data ) ;
950
949
}
951
950
952
- this . _processLineBuffer ( data , errbuffer , ( line : string ) => {
951
+ errLineBuffer = this . _processLineBuffer ( data , errLineBuffer , ( line : string ) => {
953
952
this . emit ( 'errline' , line ) ;
954
953
} ) ;
955
954
} ) ;
@@ -967,12 +966,12 @@ export class ToolRunner extends events.EventEmitter {
967
966
this . _debug ( 'rc:' + code ) ;
968
967
returnCode = code ;
969
968
970
- if ( stdbuffer . length > 0 ) {
971
- this . emit ( 'stdline' , stdbuffer ) ;
969
+ if ( stdLineBuffer . length > 0 ) {
970
+ this . emit ( 'stdline' , stdLineBuffer ) ;
972
971
}
973
972
974
- if ( errbuffer . length > 0 ) {
975
- this . emit ( 'errline' , errbuffer ) ;
973
+ if ( errLineBuffer . length > 0 ) {
974
+ this . emit ( 'errline' , errLineBuffer ) ;
976
975
}
977
976
978
977
if ( code != 0 && ! optionsNonNull . ignoreReturnCode ) {
@@ -1100,16 +1099,19 @@ export class ToolRunner extends events.EventEmitter {
1100
1099
this . _debug ( message ) ;
1101
1100
} ) ;
1102
1101
1103
- var stdbuffer : string = '' ;
1104
- var errbuffer : string = '' ;
1105
- const emitDoneEvent = function ( resolve , reject ) {
1102
+ let stdLineBuffer = '' ;
1103
+ let errLineBuffer = '' ;
1104
+ const emitDoneEvent = (
1105
+ resolve : ( code : number ) => void ,
1106
+ reject : ( error : Error ) => void
1107
+ ) => {
1106
1108
state . on ( 'done' , ( error : Error , exitCode : number ) => {
1107
- if ( stdbuffer . length > 0 ) {
1108
- this . emit ( 'stdline' , stdbuffer ) ;
1109
+ if ( stdLineBuffer . length > 0 ) {
1110
+ this . emit ( 'stdline' , stdLineBuffer ) ;
1109
1111
}
1110
1112
1111
- if ( errbuffer . length > 0 ) {
1112
- this . emit ( 'errline' , errbuffer ) ;
1113
+ if ( errLineBuffer . length > 0 ) {
1114
+ this . emit ( 'errline' , errLineBuffer ) ;
1113
1115
}
1114
1116
1115
1117
if ( cp ) {
@@ -1126,7 +1128,7 @@ export class ToolRunner extends events.EventEmitter {
1126
1128
}
1127
1129
1128
1130
// Edge case when the node itself cant's spawn and emit event
1129
- let cp ;
1131
+ let cp : child . ChildProcess ;
1130
1132
try {
1131
1133
cp = child . spawn ( this . _getSpawnFileName ( options ) , this . _getSpawnArgs ( optionsNonNull ) , this . _getSpawnOptions ( options ) ) ;
1132
1134
} catch ( error ) {
@@ -1156,7 +1158,7 @@ export class ToolRunner extends events.EventEmitter {
1156
1158
optionsNonNull . outStream ! . write ( data ) ;
1157
1159
}
1158
1160
1159
- this . _processLineBuffer ( data , stdbuffer , ( line : string ) => {
1161
+ stdLineBuffer = this . _processLineBuffer ( data , stdLineBuffer , ( line : string ) => {
1160
1162
this . emit ( 'stdline' , line ) ;
1161
1163
} ) ;
1162
1164
} ) ;
@@ -1170,7 +1172,7 @@ export class ToolRunner extends events.EventEmitter {
1170
1172
s . write ( data ) ;
1171
1173
}
1172
1174
1173
- this . _processLineBuffer ( data , errbuffer , ( line : string ) => {
1175
+ errLineBuffer = this . _processLineBuffer ( data , errLineBuffer , ( line : string ) => {
1174
1176
this . emit ( 'errline' , line ) ;
1175
1177
} ) ;
1176
1178
} ) ;
@@ -1234,15 +1236,15 @@ export class ToolRunner extends events.EventEmitter {
1234
1236
this . _debug ( message ) ;
1235
1237
} ) ;
1236
1238
1237
- var stdbuffer : string = '' ;
1238
- var errbuffer : string = '' ;
1239
+ let stdLineBuffer = '' ;
1240
+ let errLineBuffer = '' ;
1239
1241
state . on ( 'done' , ( error : Error , exitCode : number ) => {
1240
- if ( stdbuffer . length > 0 ) {
1241
- this . emit ( 'stdline' , stdbuffer ) ;
1242
+ if ( stdLineBuffer . length > 0 ) {
1243
+ this . emit ( 'stdline' , stdLineBuffer ) ;
1242
1244
}
1243
1245
1244
- if ( errbuffer . length > 0 ) {
1245
- this . emit ( 'errline' , errbuffer ) ;
1246
+ if ( errLineBuffer . length > 0 ) {
1247
+ this . emit ( 'errline' , errLineBuffer ) ;
1246
1248
}
1247
1249
1248
1250
if ( cp ) {
@@ -1259,7 +1261,7 @@ export class ToolRunner extends events.EventEmitter {
1259
1261
1260
1262
1261
1263
// Edge case when the node itself cant's spawn and emit event
1262
- let cp ;
1264
+ let cp : child . ChildProcess ;
1263
1265
try {
1264
1266
cp = child . spawn ( this . _getSpawnFileName ( options ) , this . _getSpawnArgs ( optionsNonNull ) , this . _getSpawnOptions ( options ) ) ;
1265
1267
} catch ( error ) {
@@ -1288,7 +1290,7 @@ export class ToolRunner extends events.EventEmitter {
1288
1290
optionsNonNull . outStream ! . write ( data ) ;
1289
1291
}
1290
1292
1291
- this . _processLineBuffer ( data , stdbuffer , ( line : string ) => {
1293
+ stdLineBuffer = this . _processLineBuffer ( data , stdLineBuffer , ( line : string ) => {
1292
1294
this . emit ( 'stdline' , line ) ;
1293
1295
} ) ;
1294
1296
} ) ;
@@ -1303,7 +1305,7 @@ export class ToolRunner extends events.EventEmitter {
1303
1305
s . write ( data ) ;
1304
1306
}
1305
1307
1306
- this . _processLineBuffer ( data , errbuffer , ( line : string ) => {
1308
+ errLineBuffer = this . _processLineBuffer ( data , errLineBuffer , ( line : string ) => {
1307
1309
this . emit ( 'errline' , line ) ;
1308
1310
} ) ;
1309
1311
} ) ;
0 commit comments