mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
Fix all JSHint complaints in Node.js code.
This commit is contained in:
parent
f62ce4acc1
commit
b4416b5f0f
31 changed files with 126 additions and 119 deletions
|
@ -9,7 +9,6 @@
|
||||||
"noempty": true,
|
"noempty": true,
|
||||||
"nonbsp": true,
|
"nonbsp": true,
|
||||||
"nonew": true,
|
"nonew": true,
|
||||||
"quotmark": "single",
|
|
||||||
"undef": true,
|
"undef": true,
|
||||||
"unused": true,
|
"unused": true,
|
||||||
"trailing": true,
|
"trailing": true,
|
||||||
|
|
10
Gruntfile.js
10
Gruntfile.js
|
@ -17,7 +17,7 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
nggettext_extract: {
|
'nggettext_extract': {
|
||||||
pot: {
|
pot: {
|
||||||
files: {
|
files: {
|
||||||
'res/lang/po/template.pot': ['tmp/html/all.html', 'res/app/**/*.js']
|
'res/lang/po/template.pot': ['tmp/html/all.html', 'res/app/**/*.js']
|
||||||
|
@ -25,7 +25,7 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
nggettext_compile: {
|
'nggettext_compile': {
|
||||||
all: {
|
all: {
|
||||||
files: {
|
files: {
|
||||||
'res/lang/translations.js': ['res/lang/po/*.po']
|
'res/lang/translations.js': ['res/lang/po/*.po']
|
||||||
|
@ -34,6 +34,10 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
grunt.registerTask('translate', ['jade:translate', 'nggettext_extract', 'nggettext_compile'])
|
grunt.registerTask('translate', [
|
||||||
|
'jade:translate'
|
||||||
|
, 'nggettext_extract'
|
||||||
|
, 'nggettext_compile'
|
||||||
|
])
|
||||||
grunt.registerTask('default', ['translate'])
|
grunt.registerTask('default', ['translate'])
|
||||||
}
|
}
|
||||||
|
|
10
gulpfile.js
Normal file
10
gulpfile.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
var gulp = require('gulp')
|
||||||
|
var jshint = require('gulp-jshint')
|
||||||
|
|
||||||
|
gulp.task('lint', function() {
|
||||||
|
gulp.src(['lib/**/*.js', '*.js'])
|
||||||
|
.pipe(jshint())
|
||||||
|
.pipe(jshint.reporter('jshint-stylish'))
|
||||||
|
})
|
||||||
|
|
||||||
|
gulp.task('test', ['lint'])
|
|
@ -520,13 +520,13 @@ program
|
||||||
, '--auth-url', util.format('http://localhost:%d/', options.authPort)
|
, '--auth-url', util.format('http://localhost:%d/', options.authPort)
|
||||||
, '--connect-sub', options.bindAppPub
|
, '--connect-sub', options.bindAppPub
|
||||||
, '--connect-push', options.bindAppPull
|
, '--connect-push', options.bindAppPull
|
||||||
].concat(function() {
|
].concat((function() {
|
||||||
var extra = []
|
var extra = []
|
||||||
if (options.disableWatch) {
|
if (options.disableWatch) {
|
||||||
extra.push('--disable-watch')
|
extra.push('--disable-watch')
|
||||||
}
|
}
|
||||||
return extra
|
return extra
|
||||||
}()))
|
})()))
|
||||||
]
|
]
|
||||||
|
|
||||||
function shutdown() {
|
function shutdown() {
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
var r = require('rethinkdb')
|
var r = require('rethinkdb')
|
||||||
var Promise = require('bluebird')
|
|
||||||
|
|
||||||
var db = require('./')
|
var db = require('./')
|
||||||
var wire = require('../wire')
|
|
||||||
var wireutil = require('../wire/util')
|
var wireutil = require('../wire/util')
|
||||||
|
|
||||||
var dbapi = Object.create(null)
|
var dbapi = Object.create(null)
|
||||||
|
@ -85,7 +83,7 @@ dbapi.setDeviceOwner = function(serial, owner) {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
dbapi.unsetDeviceOwner = function(serial, owner) {
|
dbapi.unsetDeviceOwner = function(serial) {
|
||||||
return db.run(r.table('devices').get(serial).update({
|
return db.run(r.table('devices').get(serial).update({
|
||||||
owner: null
|
owner: null
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -43,6 +43,6 @@ db.close = function() {
|
||||||
// Small utility for running queries without having to acquire a connection
|
// Small utility for running queries without having to acquire a connection
|
||||||
db.run = function(q, options) {
|
db.run = function(q, options) {
|
||||||
return db.connect().then(function(conn) {
|
return db.connect().then(function(conn) {
|
||||||
return rutil.run(conn, q)
|
return rutil.run(conn, q, options)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
var assert = require('assert')
|
|
||||||
var util = require('util')
|
|
||||||
|
|
||||||
var r = require('rethinkdb')
|
var r = require('rethinkdb')
|
||||||
var Promise = require('bluebird')
|
var Promise = require('bluebird')
|
||||||
|
|
||||||
|
@ -24,7 +21,7 @@ module.exports = function(conn) {
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log.info('Database "%s" created', conn.db)
|
log.info('Database "%s" created', conn.db)
|
||||||
})
|
})
|
||||||
.catch(alreadyExistsError, function(err) {
|
.catch(alreadyExistsError, function() {
|
||||||
log.info('Database "%s" already exists', conn.db)
|
log.info('Database "%s" already exists', conn.db)
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
})
|
})
|
||||||
|
@ -38,11 +35,11 @@ module.exports = function(conn) {
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log.info('Table "%s" created', table)
|
log.info('Table "%s" created', table)
|
||||||
})
|
})
|
||||||
.catch(alreadyExistsError, function(err) {
|
.catch(alreadyExistsError, function() {
|
||||||
log.info('Table "%s" already exists', table)
|
log.info('Table "%s" already exists', table)
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
})
|
})
|
||||||
.catch(noMasterAvailableError, function(err) {
|
.catch(noMasterAvailableError, function() {
|
||||||
return Promise.delay(1000).then(function() {
|
return Promise.delay(1000).then(function() {
|
||||||
return createTable(table, options)
|
return createTable(table, options)
|
||||||
})
|
})
|
||||||
|
@ -61,11 +58,11 @@ module.exports = function(conn) {
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log.info('Index "%s"."%s" created', table, index)
|
log.info('Index "%s"."%s" created', table, index)
|
||||||
})
|
})
|
||||||
.catch(alreadyExistsError, function(err) {
|
.catch(alreadyExistsError, function() {
|
||||||
log.info('Index "%s"."%s" already exists', table, index)
|
log.info('Index "%s"."%s" already exists', table, index)
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
})
|
})
|
||||||
.catch(noMasterAvailableError, function(err) {
|
.catch(noMasterAvailableError, function() {
|
||||||
return Promise.delay(1000).then(function() {
|
return Promise.delay(1000).then(function() {
|
||||||
return createIndex(table, index, fn)
|
return createIndex(table, index, fn)
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
var r = require('rethinkdb')
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
users: {
|
users: {
|
||||||
primaryKey: 'email'
|
primaryKey: 'email'
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
var url = require('url')
|
|
||||||
var http = require('http')
|
var http = require('http')
|
||||||
var events = require('events')
|
var events = require('events')
|
||||||
var path = require('path')
|
var path = require('path')
|
||||||
|
@ -41,7 +40,8 @@ module.exports = function(options) {
|
||||||
|
|
||||||
app.use(cors())
|
app.use(cors())
|
||||||
|
|
||||||
app.use('/static/bower_components', express.static(pathutil.resource('bower_components')))
|
app.use('/static/bower_components',
|
||||||
|
express.static(pathutil.resource('bower_components')))
|
||||||
app.use('/static/data', express.static(pathutil.resource('data')))
|
app.use('/static/data', express.static(pathutil.resource('data')))
|
||||||
app.use('/static/devices', datautil.middleware())
|
app.use('/static/devices', datautil.middleware())
|
||||||
app.use('/static', express.static(pathutil.resource('app')))
|
app.use('/static', express.static(pathutil.resource('app')))
|
||||||
|
@ -203,7 +203,7 @@ module.exports = function(options) {
|
||||||
accept(null, false)
|
accept(null, false)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(function(err) {
|
.catch(function() {
|
||||||
accept(null, false)
|
accept(null, false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -225,11 +225,11 @@ module.exports = function(options) {
|
||||||
sub.unsubscribe(channel)
|
sub.unsubscribe(channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
function createTouchHandler(klass) {
|
function createTouchHandler(Klass) {
|
||||||
return function(channel, data) {
|
return function(channel, data) {
|
||||||
push.send([
|
push.send([
|
||||||
channel
|
channel
|
||||||
, wireutil.envelope(new klass(
|
, wireutil.envelope(new Klass(
|
||||||
data.x
|
data.x
|
||||||
, data.y
|
, data.y
|
||||||
))
|
))
|
||||||
|
@ -237,11 +237,11 @@ module.exports = function(options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function createKeyHandler(klass) {
|
function createKeyHandler(Klass) {
|
||||||
return function(channel, data) {
|
return function(channel, data) {
|
||||||
push.send([
|
push.send([
|
||||||
channel
|
channel
|
||||||
, wireutil.envelope(new klass(
|
, wireutil.envelope(new Klass(
|
||||||
data.key
|
data.key
|
||||||
))
|
))
|
||||||
])
|
])
|
||||||
|
@ -309,7 +309,7 @@ module.exports = function(options) {
|
||||||
// User's private group
|
// User's private group
|
||||||
joinChannel(user.group)
|
joinChannel(user.group)
|
||||||
|
|
||||||
new Promise(function(resolve, reject) {
|
new Promise(function(resolve) {
|
||||||
socket.on('disconnect', resolve)
|
socket.on('disconnect', resolve)
|
||||||
// Touch events
|
// Touch events
|
||||||
.on('input.touchDown', createTouchHandler(wire.TouchDownMessage))
|
.on('input.touchDown', createTouchHandler(wire.TouchDownMessage))
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
var url = require('url')
|
|
||||||
|
|
||||||
var express = require('express')
|
var express = require('express')
|
||||||
var validator = require('express-validator')
|
var validator = require('express-validator')
|
||||||
|
|
||||||
|
@ -28,7 +26,8 @@ module.exports = function(options) {
|
||||||
app.use(express.urlencoded())
|
app.use(express.urlencoded())
|
||||||
app.use(express.csrf())
|
app.use(express.csrf())
|
||||||
app.use(validator())
|
app.use(validator())
|
||||||
app.use('/static/bower_components', express.static(pathutil.resource('bower_components')))
|
app.use('/static/bower_components',
|
||||||
|
express.static(pathutil.resource('bower_components')))
|
||||||
app.use('/static/data', express.static(pathutil.resource('data')))
|
app.use('/static/data', express.static(pathutil.resource('data')))
|
||||||
app.use('/static', express.static(pathutil.resource('auth-ldap')))
|
app.use('/static', express.static(pathutil.resource('auth-ldap')))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
var url = require('url')
|
|
||||||
|
|
||||||
var express = require('express')
|
var express = require('express')
|
||||||
var validator = require('express-validator')
|
var validator = require('express-validator')
|
||||||
|
|
||||||
|
@ -27,7 +25,8 @@ module.exports = function(options) {
|
||||||
app.use(express.urlencoded())
|
app.use(express.urlencoded())
|
||||||
app.use(express.csrf())
|
app.use(express.csrf())
|
||||||
app.use(validator())
|
app.use(validator())
|
||||||
app.use('/static/bower_components', express.static(pathutil.resource('bower_components')))
|
app.use('/static/bower_components',
|
||||||
|
express.static(pathutil.resource('bower_components')))
|
||||||
app.use('/static/data', express.static(pathutil.resource('data')))
|
app.use('/static/data', express.static(pathutil.resource('data')))
|
||||||
app.use('/static', express.static(pathutil.resource('auth-mock')))
|
app.use('/static', express.static(pathutil.resource('auth-mock')))
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ module.exports = syrup.serial()
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return adb.shell(options.serial, util.format(
|
return adb.shell(options.serial, util.format(
|
||||||
"export CLASSPATH='%s';"
|
"export CLASSPATH='%s';" +
|
||||||
+ " exec app_process /system/bin '%s'"
|
" exec app_process /system/bin '%s'"
|
||||||
, apk.path
|
, apk.path
|
||||||
, apk.main
|
, apk.main
|
||||||
))
|
))
|
||||||
|
@ -199,7 +199,7 @@ module.exports = syrup.serial()
|
||||||
.then(openService)
|
.then(openService)
|
||||||
.then(function() {
|
.then(function() {
|
||||||
router
|
router
|
||||||
.on(wire.PhysicalIdentifyMessage, function(channel, message) {
|
.on(wire.PhysicalIdentifyMessage, function(channel) {
|
||||||
identity()
|
identity()
|
||||||
push.send([
|
push.send([
|
||||||
channel
|
channel
|
||||||
|
|
|
@ -9,7 +9,8 @@ module.exports = syrup.serial()
|
||||||
.dependency(require('../support/router'))
|
.dependency(require('../support/router'))
|
||||||
.dependency(require('../support/push'))
|
.dependency(require('../support/push'))
|
||||||
.dependency(require('../support/quit'))
|
.dependency(require('../support/quit'))
|
||||||
.define(function(options, adb, router, push, quit) {
|
.dependency(require('./owner'))
|
||||||
|
.define(function(options, adb, router, push, quit, owner) {
|
||||||
var log = logger.createLogger('device:plugins:logcat')
|
var log = logger.createLogger('device:plugins:logcat')
|
||||||
|
|
||||||
function openService() {
|
function openService() {
|
||||||
|
|
|
@ -14,7 +14,8 @@ module.exports = syrup.serial()
|
||||||
.dependency(require('../support/sub'))
|
.dependency(require('../support/sub'))
|
||||||
.dependency(require('../support/channels'))
|
.dependency(require('../support/channels'))
|
||||||
.dependency(require('../support/quit'))
|
.dependency(require('../support/quit'))
|
||||||
.define(function(options, identity, input, router, push, sub, channels, quit) {
|
.define(function(options, identity, input, router, push, sub, channels,
|
||||||
|
quit) {
|
||||||
var log = logger.createLogger('device:plugins:owner')
|
var log = logger.createLogger('device:plugins:owner')
|
||||||
var owner = null
|
var owner = null
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ module.exports = syrup.serial()
|
||||||
|
|
||||||
function readableListener() {
|
function readableListener() {
|
||||||
var chunk
|
var chunk
|
||||||
while (chunk = stream.read()) {
|
while ((chunk = stream.read())) {
|
||||||
push.send([
|
push.send([
|
||||||
channel
|
channel
|
||||||
, wireutil.envelope(new wire.TransactionProgressMessage(
|
, wireutil.envelope(new wire.TransactionProgressMessage(
|
||||||
|
|
|
@ -18,7 +18,7 @@ module.exports = syrup.serial()
|
||||||
sub.subscribe(channel)
|
sub.subscribe(channel)
|
||||||
channels.register(channel, Infinity)
|
channels.register(channel, Infinity)
|
||||||
|
|
||||||
router.on(wire.ProbeMessage, function(channel, message) {
|
router.on(wire.ProbeMessage, function() {
|
||||||
push.send([
|
push.send([
|
||||||
wireutil.global
|
wireutil.global
|
||||||
, wireutil.envelope(new wire.DeviceIdentityMessage(
|
, wireutil.envelope(new wire.DeviceIdentityMessage(
|
||||||
|
|
|
@ -17,7 +17,7 @@ module.exports = syrup.serial()
|
||||||
|
|
||||||
function openService() {
|
function openService() {
|
||||||
return devutil.ensureUnusedPort(adb, options.serial, service.port)
|
return devutil.ensureUnusedPort(adb, options.serial, service.port)
|
||||||
.then(function(port) {
|
.then(function() {
|
||||||
return adb.shell(options.serial, [
|
return adb.shell(options.serial, [
|
||||||
remote.bin
|
remote.bin
|
||||||
, '--lib', remote.lib
|
, '--lib', remote.lib
|
||||||
|
|
|
@ -39,8 +39,8 @@ module.exports = syrup.serial()
|
||||||
.then(function(installedPath) {
|
.then(function(installedPath) {
|
||||||
log.info('Running version check')
|
log.info('Running version check')
|
||||||
return adb.shell(options.serial, util.format(
|
return adb.shell(options.serial, util.format(
|
||||||
"export CLASSPATH='%s';"
|
"export CLASSPATH='%s';" +
|
||||||
+ " exec app_process /system/bin '%s' --version"
|
" exec app_process /system/bin '%s' --version"
|
||||||
, installedPath
|
, installedPath
|
||||||
, resource.main
|
, resource.main
|
||||||
))
|
))
|
||||||
|
@ -61,7 +61,7 @@ module.exports = syrup.serial()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(function(err) {
|
.catch(function() {
|
||||||
log.info('Installing InputAgent.apk')
|
log.info('Installing InputAgent.apk')
|
||||||
return adb.install(options.serial, resource.apk)
|
return adb.install(options.serial, resource.apk)
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
|
|
@ -58,7 +58,7 @@ module.exports = syrup.serial()
|
||||||
.then(function(out) {
|
.then(function(out) {
|
||||||
// Can be "Text is busy", "text busy"
|
// Can be "Text is busy", "text busy"
|
||||||
return streamutil.findLine(out, (/busy/i))
|
return streamutil.findLine(out, (/busy/i))
|
||||||
.then(function(line) {
|
.then(function() {
|
||||||
log.info('Binary is busy, will retry')
|
log.info('Binary is busy, will retry')
|
||||||
return Promise.delay(1000)
|
return Promise.delay(1000)
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,7 +4,7 @@ var logger = require('../../../util/logger')
|
||||||
var ChannelManager = require('../../../wire/channelmanager')
|
var ChannelManager = require('../../../wire/channelmanager')
|
||||||
|
|
||||||
module.exports = syrup.serial()
|
module.exports = syrup.serial()
|
||||||
.define(function(options, router) {
|
.define(function() {
|
||||||
var log = logger.createLogger('device:support:channels')
|
var log = logger.createLogger('device:support:channels')
|
||||||
var channels = new ChannelManager()
|
var channels = new ChannelManager()
|
||||||
channels.on('timeout', function(channel) {
|
channels.on('timeout', function(channel) {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
var syrup = require('syrup')
|
var syrup = require('syrup')
|
||||||
|
|
||||||
var devutil = require('../../../util/devutil')
|
|
||||||
var logger = require('../../../util/logger')
|
var logger = require('../../../util/logger')
|
||||||
|
|
||||||
module.exports = syrup.serial()
|
module.exports = syrup.serial()
|
||||||
|
|
|
@ -4,7 +4,7 @@ var syrup = require('syrup')
|
||||||
var logger = require('../../../util/logger')
|
var logger = require('../../../util/logger')
|
||||||
|
|
||||||
module.exports = syrup.serial()
|
module.exports = syrup.serial()
|
||||||
.define(function(options) {
|
.define(function() {
|
||||||
var log = logger.createLogger('device:support:quit')
|
var log = logger.createLogger('device:support:quit')
|
||||||
var cleanup = []
|
var cleanup = []
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
var syrup = require('syrup')
|
var syrup = require('syrup')
|
||||||
|
|
||||||
var logger = require('../../../util/logger')
|
|
||||||
var wirerouter = require('../../../wire/router')
|
var wirerouter = require('../../../wire/router')
|
||||||
|
|
||||||
module.exports = syrup.serial()
|
module.exports = syrup.serial()
|
||||||
.dependency(require('./sub'))
|
.dependency(require('./sub'))
|
||||||
.dependency(require('./channels'))
|
.dependency(require('./channels'))
|
||||||
.define(function(options, sub, channels) {
|
.define(function(options, sub, channels) {
|
||||||
var log = logger.createLogger('device:support:router')
|
|
||||||
var router = wirerouter()
|
var router = wirerouter()
|
||||||
|
|
||||||
sub.on('message', router.handler())
|
sub.on('message', router.handler())
|
||||||
|
|
|
@ -56,7 +56,7 @@ module.exports = function(options) {
|
||||||
message: messages.join('<br>')
|
message: messages.join('<br>')
|
||||||
, color: 'purple'
|
, color: 'purple'
|
||||||
, notify: true
|
, notify: true
|
||||||
, message_format: 'html'
|
, 'message_format': 'html'
|
||||||
, token: options.token
|
, token: options.token
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
var path = require('path')
|
|
||||||
var events = require('events')
|
var events = require('events')
|
||||||
|
|
||||||
var adb = require('adbkit')
|
var adb = require('adbkit')
|
||||||
|
@ -109,7 +108,7 @@ module.exports = function(options) {
|
||||||
, worker
|
, worker
|
||||||
|
|
||||||
// Wait for others to acknowledge the device
|
// Wait for others to acknowledge the device
|
||||||
var register = new Promise(function(resolve, reject) {
|
var register = new Promise(function(resolve) {
|
||||||
// Tell others we found a device
|
// Tell others we found a device
|
||||||
push.send([
|
push.send([
|
||||||
wireutil.global
|
wireutil.global
|
||||||
|
@ -175,7 +174,7 @@ module.exports = function(options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the added device gets removed
|
// When the added device gets removed
|
||||||
function removeListener(updatedDevice) {
|
function removeListener() {
|
||||||
register.then(function() {
|
register.then(function() {
|
||||||
log.info('Lost device "%s" (%s)', device.id, device.type)
|
log.info('Lost device "%s" (%s)', device.id, device.type)
|
||||||
|
|
||||||
|
@ -224,7 +223,7 @@ module.exports = function(options) {
|
||||||
|
|
||||||
// Starts a device worker and keeps it alive
|
// Starts a device worker and keeps it alive
|
||||||
function work() {
|
function work() {
|
||||||
return worker = workers[device.id] = spawn()
|
return (worker = workers[device.id] = spawn())
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log.info('Device worker "%s" has retired', device.id)
|
log.info('Device worker "%s" has retired', device.id)
|
||||||
delete workers[device.id]
|
delete workers[device.id]
|
||||||
|
@ -323,7 +322,7 @@ module.exports = function(options) {
|
||||||
_.pull(lists.waiting, device.id)
|
_.pull(lists.waiting, device.id)
|
||||||
})
|
})
|
||||||
.cancellable()
|
.cancellable()
|
||||||
.catch(Promise.CancellationError, function(err) {
|
.catch(Promise.CancellationError, function() {
|
||||||
log.info('Gracefully killing device worker "%s"', device.id)
|
log.info('Gracefully killing device worker "%s"', device.id)
|
||||||
return procutil.gracefullyKill(proc, options.killTimeout)
|
return procutil.gracefullyKill(proc, options.killTimeout)
|
||||||
})
|
})
|
||||||
|
@ -377,12 +376,12 @@ module.exports = function(options) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
process.on('SIGINT', function(e) {
|
process.on('SIGINT', function() {
|
||||||
log.info('Received SIGINT')
|
log.info('Received SIGINT')
|
||||||
gracefullyExit()
|
gracefullyExit()
|
||||||
})
|
})
|
||||||
|
|
||||||
process.on('SIGTERM', function(e) {
|
process.on('SIGTERM', function() {
|
||||||
log.info('Received SIGTERM')
|
log.info('Received SIGTERM')
|
||||||
gracefullyExit()
|
gracefullyExit()
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
var util = require('util')
|
|
||||||
|
|
||||||
var Promise = require('bluebird')
|
var Promise = require('bluebird')
|
||||||
var zmq = require('zmq')
|
var zmq = require('zmq')
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ devutil.ensureUnusedPort = function(adb, serial, port) {
|
||||||
conn.end()
|
conn.end()
|
||||||
throw new Error(util.format('Port "%d" should be unused', port))
|
throw new Error(util.format('Port "%d" should be unused', port))
|
||||||
})
|
})
|
||||||
.catch(closedError, function(err) {
|
.catch(closedError, function() {
|
||||||
return Promise.resolve(port)
|
return Promise.resolve(port)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ devutil.waitForPort = function(adb, serial, port) {
|
||||||
conn.port = port
|
conn.port = port
|
||||||
return conn
|
return conn
|
||||||
})
|
})
|
||||||
.catch(closedError, function(err) {
|
.catch(closedError, function() {
|
||||||
return Promise.delay(100)
|
return Promise.delay(100)
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return devutil.waitForPort(adb, serial, port)
|
return devutil.waitForPort(adb, serial, port)
|
||||||
|
@ -93,7 +93,7 @@ devutil.waitForPortToFree = function(adb, serial, port) {
|
||||||
conn.end()
|
conn.end()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(closedError, function(err) {
|
.catch(closedError, function() {
|
||||||
return port
|
return port
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ devutil.listPidsByComm = function(adb, serial, comm, bin) {
|
||||||
|
|
||||||
return adb.shell(serial, ['ps', comm])
|
return adb.shell(serial, ['ps', comm])
|
||||||
.then(function(out) {
|
.then(function(out) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve) {
|
||||||
var header = false
|
var header = false
|
||||||
, pids = []
|
, pids = []
|
||||||
out.pipe(split())
|
out.pipe(split())
|
||||||
|
@ -147,7 +147,7 @@ devutil.killProcsByComm = function(adb, serial, comm, bin, mode) {
|
||||||
}
|
}
|
||||||
return adb.shell(serial, ['kill', mode || -15].concat(pids))
|
return adb.shell(serial, ['kill', mode || -15].concat(pids))
|
||||||
.then(function(out) {
|
.then(function(out) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve) {
|
||||||
out.on('end', resolve)
|
out.on('end', resolve)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -165,8 +165,8 @@ devutil.makeIdentity = function(serial, properties) {
|
||||||
var model = properties['ro.product.model']
|
var model = properties['ro.product.model']
|
||||||
, brand = properties['ro.product.brand']
|
, brand = properties['ro.product.brand']
|
||||||
, manufacturer = properties['ro.product.manufacturer']
|
, manufacturer = properties['ro.product.manufacturer']
|
||||||
, operator = properties['gsm.sim.operator.alpha']
|
, operator = properties['gsm.sim.operator.alpha'] ||
|
||||||
|| properties['gsm.operator.alpha']
|
properties['gsm.operator.alpha']
|
||||||
, version = properties['ro.build.version.release']
|
, version = properties['ro.build.version.release']
|
||||||
, sdk = properties['ro.build.version.sdk']
|
, sdk = properties['ro.build.version.sdk']
|
||||||
, abi = properties['ro.product.cpu.abi']
|
, abi = properties['ro.product.cpu.abi']
|
||||||
|
|
|
@ -1,9 +1,41 @@
|
||||||
var util = require('util')
|
var util = require('util')
|
||||||
var events = require('events')
|
var events = require('events')
|
||||||
|
|
||||||
var colors = require('colors')
|
// Enable "string".color
|
||||||
|
require('colors')
|
||||||
|
|
||||||
function Log(tag, stream) {
|
var Logger = new events.EventEmitter()
|
||||||
|
|
||||||
|
Logger.Level = {
|
||||||
|
DEBUG: 1
|
||||||
|
, VERBOSE: 2
|
||||||
|
, INFO: 3
|
||||||
|
, WARNING: 4
|
||||||
|
, ERROR: 5
|
||||||
|
, FATAL: 6
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.LevelLabel = {
|
||||||
|
1: 'DBG'
|
||||||
|
, 2: 'VRB'
|
||||||
|
, 3: 'INF'
|
||||||
|
, 4: 'WRN'
|
||||||
|
, 5: 'ERR'
|
||||||
|
, 6: 'FTL'
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.globalIdentifier = '*'
|
||||||
|
|
||||||
|
Logger.createLogger = function(tag) {
|
||||||
|
return new Log(tag)
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.setGlobalIdentifier = function(identifier) {
|
||||||
|
Logger.globalIdentifier = identifier
|
||||||
|
return Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
function Log(tag) {
|
||||||
this.tag = tag
|
this.tag = tag
|
||||||
this.names = {
|
this.names = {
|
||||||
1: 'DBG'
|
1: 'DBG'
|
||||||
|
@ -95,35 +127,4 @@ Log.prototype._write = function(entry) {
|
||||||
Logger.emit('entry', entry)
|
Logger.emit('entry', entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
var Logger = new events.EventEmitter()
|
|
||||||
|
|
||||||
Logger.Level = {
|
|
||||||
DEBUG: 1
|
|
||||||
, VERBOSE: 2
|
|
||||||
, INFO: 3
|
|
||||||
, WARNING: 4
|
|
||||||
, ERROR: 5
|
|
||||||
, FATAL: 6
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.LevelLabel = {
|
|
||||||
1: 'DBG'
|
|
||||||
, 2: 'VRB'
|
|
||||||
, 3: 'INF'
|
|
||||||
, 4: 'WRN'
|
|
||||||
, 5: 'ERR'
|
|
||||||
, 6: 'FTL'
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.globalIdentifier = '*'
|
|
||||||
|
|
||||||
Logger.createLogger = function(tag) {
|
|
||||||
return new Log(tag)
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.setGlobalIdentifier = function(identifier) {
|
|
||||||
Logger.globalIdentifier = identifier
|
|
||||||
return Logger
|
|
||||||
}
|
|
||||||
|
|
||||||
exports = module.exports = Logger
|
exports = module.exports = Logger
|
||||||
|
|
|
@ -54,10 +54,10 @@ module.exports.fork = function() {
|
||||||
process.removeListener('SIGINT', sigintListener)
|
process.removeListener('SIGINT', sigintListener)
|
||||||
process.removeListener('SIGTERM', sigtermListener)
|
process.removeListener('SIGTERM', sigtermListener)
|
||||||
})
|
})
|
||||||
.catch(Promise.CancellationError, function(err) {
|
.catch(Promise.CancellationError, function() {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve) {
|
||||||
proc.on('exit', function() {
|
proc.on('exit', function() {
|
||||||
resolver.resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
proc.kill()
|
proc.kill()
|
||||||
})
|
})
|
||||||
|
|
|
@ -27,7 +27,7 @@ module.exports.readAll = function(stream) {
|
||||||
|
|
||||||
function readableListener() {
|
function readableListener() {
|
||||||
var chunk;
|
var chunk;
|
||||||
while (chunk = stream.read()) {
|
while ((chunk = stream.read())) {
|
||||||
collected = Buffer.concat([collected, chunk])
|
collected = Buffer.concat([collected, chunk])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
var pathutil = require('./lib/util/pathutil')
|
var pathutil = require('./lib/util/pathutil')
|
||||||
var webpack = require('webpack')
|
var webpack = require('webpack')
|
||||||
var path = require('path')
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
cache: true,
|
cache: true,
|
||||||
|
@ -30,12 +29,18 @@ module.exports = {
|
||||||
{ test: /\.jpg$/, loader: "url-loader?limit=5000&mimetype=image/jpeg" },
|
{ test: /\.jpg$/, loader: "url-loader?limit=5000&mimetype=image/jpeg" },
|
||||||
{ test: /\.png$/, loader: "url-loader?limit=5000&mimetype=image/png" },
|
{ test: /\.png$/, loader: "url-loader?limit=5000&mimetype=image/png" },
|
||||||
{ test: /\.gif$/, loader: "url-loader?limit=5000&mimetype=image/gif" },
|
{ test: /\.gif$/, loader: "url-loader?limit=5000&mimetype=image/gif" },
|
||||||
{ test: /\.svg$/, loader: "url-loader?limit=5000&mimetype=image/svg+xml" },
|
{ test: /\.svg$/
|
||||||
{ test: /\.woff$/, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
, loader: "url-loader?limit=5000&mimetype=image/svg+xml" },
|
||||||
{ test: /\.otf$/, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
{ test: /\.woff$/
|
||||||
{ test: /\.ttf$/, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
||||||
{ test: /\.eot$/, loader: "url-loader?limit=5000&mimetype=vnd.ms-fontobject" },
|
{ test: /\.otf$/
|
||||||
{ test: /\.jade/, loader: 'template-html-loader' },
|
, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
||||||
|
{ test: /\.ttf$/
|
||||||
|
, loader: "url-loader?limit=5000&mimetype=application/font-woff" },
|
||||||
|
{ test: /\.eot$/
|
||||||
|
, loader: "url-loader?limit=5000&mimetype=vnd.ms-fontobject" },
|
||||||
|
{ test: /\.jade/
|
||||||
|
, loader: 'template-html-loader' },
|
||||||
{ test: /\.html/, loader: 'html-loader' },
|
{ test: /\.html/, loader: 'html-loader' },
|
||||||
{ test: /angular\.js/, loader: 'exports?angular'},
|
{ test: /angular\.js/, loader: 'exports?angular'},
|
||||||
{ test: /angular-route\.js/, loader: 'imports?angular=angular'},
|
{ test: /angular-route\.js/, loader: 'imports?angular=angular'},
|
||||||
|
@ -50,15 +55,16 @@ module.exports = {
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.ResolverPlugin(
|
new webpack.ResolverPlugin(
|
||||||
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin('bower.json', ['main'])
|
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin(
|
||||||
|
'bower.json'
|
||||||
|
, ['main']
|
||||||
|
)
|
||||||
),
|
),
|
||||||
new webpack.ResolverPlugin(
|
new webpack.ResolverPlugin(
|
||||||
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin('.bower.json', ['main'])
|
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin(
|
||||||
|
'.bower.json'
|
||||||
|
, ['main']
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
// new webpack.ResolverPlugin(
|
|
||||||
// new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin('package.json', ['main'])
|
|
||||||
// )
|
|
||||||
// ,new webpack.optimize.UglifyJsPlugin({mangle: false})
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue