@@ -3,35 +3,42 @@ const io = require('socket.io-client')
33const colors = require ( 'colors' )
44const pretty = require ( './helpers/pretty' )
55const runner = require ( './runner' )
6+ const os = require ( 'os' )
67
78/**
89 * @param {Object } cli's parameters parsed via commander's npm package
910 */
1011module . exports . exec = ( program ) => {
1112
13+ const cpusCounts = os . cpus ( ) . length
14+ const programConcurrency = program . concurrency || cpusCounts
15+ let concurrency = programConcurrency >= cpusCounts ? cpusCounts : programConcurrency
16+
17+ const q = require ( 'queue' ) ( {
18+ concurrency : concurrency
19+ } )
20+
1221 let agent = { }
1322
1423 // Shows welcome messages
1524 console . log ( pretty . logo ( ) )
1625 console . log ( ` || Tideflow.io - agent ${ pjson . version } ` . blue )
26+ console . log ( ` || Using ${ concurrency } as concurrency` . yellow )
1727
1828 const URL = process . env . TF_AGENT_URL || 'http://localhost:1337'
1929
2030 const socket = io ( `${ URL } ?token=${ program . token } ` )
2131
22- // socket.on('connect', function () {})
23-
24- // socket.on('reconnect', function () {})
25-
2632 // Execute command
2733 socket . on ( 'tf.command' , function ( req ) {
2834 if ( ! agent . authenticated ) return
29- runner . cmd ( socket , 'tf.command' , req )
35+ q . push ( runner . cmd ( socket , 'tf.command' , req ) )
3036 } )
3137
3238 // Execute code
3339 socket . on ( 'tf.code' , function ( ) {
34- if ( ! agent . token ) return
40+ if ( ! agent . authenticated ) return
41+ q . push ( runner . code ( socket , 'tf.code' , req ) )
3542 } )
3643
3744 // Authorize agent
0 commit comments