1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 19:42:01 +02:00

Push vendor files to devices.

This commit is contained in:
Simo Kinnunen 2014-01-29 00:13:29 +09:00
parent a4725fe71c
commit 216592a995
12 changed files with 83 additions and 8 deletions

View file

@ -1,4 +1,5 @@
var assert = require('assert')
var util = require('util')
var Promise = require('bluebird')
var zmq = require('zmq')
@ -8,11 +9,14 @@ var logger = require('../util/logger')
var wire = require('../wire')
var wireutil = require('../util/wireutil')(wire)
var devutil = require('../util/devutil')
var pathutil = require('../util/pathutil')
var promiseutil = require('../util/promiseutil')
var ChannelManager = require('../wire/channelmanager')
module.exports = function(options) {
var log = logger.createLogger('device')
var identity = Object.create(null)
var vendor = Object.create(null)
var solo = wireutil.makePrivateChannel()
var channels = new ChannelManager()
@ -43,18 +47,44 @@ module.exports = function(options) {
push.send([channel, wireutil.makeLeaveGroupMessage(options.serial)])
})
promiseutil.periodicNotify(adb.waitBootCompleteAsync(options.serial), 1000)
.progressed(function() {
log.info('Waiting for boot to complete')
})
.then(function() {
log.info('Gathering properties')
return adb.getPropertiesAsync(options.serial)
})
.then(function(properties) {
log.info('Solving identity')
return identity = devutil.makeIdentity(options.serial, properties)
})
.then(function() {
vendor = devutil.vendorFiles(identity)
return Promise.all(Object.keys(vendor).map(function(id) {
var res = vendor[id]
log.info(util.format('Pushing vendor file "%s"', res.dest))
return adb.pushAsync(options.serial, res.src, res.dest, res.mode)
.then(function(transfer) {
return new Promise(function(resolve, reject) {
transfer.on('end', resolve)
})
})
}))
})
.done(function() {
log.info('Ready for instructions')
poke()
})
sub.on('message', function(channel, data) {
var wrapper = wire.Envelope.decode(data)
channels.keepalive(channel)
switch (wrapper.type) {
case wire.MessageType.PROBE:
var message = wire.ProbeMessage.decode(wrapper.message)
adb.getPropertiesAsync(options.serial)
.then(function(properties) {
identity = devutil.makeIdentity(options.serial, properties)
push.send([channel,
wireutil.makeDeviceIdentityMessage(options.serial, identity)])
})
push.send([channel,
wireutil.makeDeviceIdentityMessage(options.serial, identity)])
break
case wire.MessageType.GROUP:
var message = wire.GroupMessage.decode(wrapper.message)
@ -145,6 +175,4 @@ module.exports = function(options) {
process.on('SIGTERM', function() {
gracefullyExit()
})
poke()
}