diff --git a/lib/cli.js b/lib/cli.js index 558cfaf2..2eaa3682 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -9,19 +9,17 @@ program program .command('provider [serial..]') .description('start provider') - .option('-s, --connect-dev-sub ', 'device sub endpoint', - cliargs.list) - .option('-p, --connect-dev-push ', 'device push endpoint', - cliargs.list) + .option('-s, --connect-sub ', 'sub endpoint', cliargs.list) + .option('-p, --connect-push ', 'push endpoint', cliargs.list) .action(function() { var serials = cliargs.allUnknownArgs(arguments) , options = cliargs.lastArg(arguments) - if (!options.connectDevSub) { - this.missingArgument('--connect-dev-sub') + if (!options.connectSub) { + this.missingArgument('--connect-sub') } - if (!options.connectDevPush) { - this.missingArgument('--connect-dev-push') + if (!options.connectPush) { + this.missingArgument('--connect-push') } require('./roles/provider')({ @@ -32,10 +30,14 @@ program var fork = require('child_process').fork return fork(__filename, [ 'device', device.id - , '--connect-sub', options.connectDevSub.join(',') - , '--connect-push', options.connectDevPush.join(',') + , '--connect-sub', options.connectSub.join(',') + , '--connect-push', options.connectPush.join(',') ]) } + , endpoints: { + sub: options.connectSub + , push: options.connectPush + } }) }) @@ -178,8 +180,8 @@ program // provider fork(__filename, [ 'provider' - , '--connect-dev-sub', options.bindDevPub - , '--connect-dev-push', options.bindDevPull + , '--connect-sub', options.bindDevPub + , '--connect-push', options.bindDevPull ].concat(cliargs.allUnknownArgs(arguments))) }) diff --git a/lib/roles/provider.js b/lib/roles/provider.js index d2194060..fb1e910e 100644 --- a/lib/roles/provider.js +++ b/lib/roles/provider.js @@ -1,11 +1,19 @@ var adb = require('adbkit') var Promise = require('bluebird') +var zmq = require('zmq') module.exports = function(options) { var log = require('../util/logger').createLogger('provider') var client = Promise.promisifyAll(adb.createClient()) var workers = Object.create(null) + // Output + var push = zmq.socket('push') + options.endpoints.push.forEach(function(endpoint) { + log.info('Sending output to %s', endpoint) + push.connect(endpoint) + }) + client.trackDevicesAsync() .then(function(tracker) { log.info('Tracking devices')