mirror of
https://github.com/openstf/stf
synced 2025-10-03 17:59:28 +02:00
Minimal start with a custom logger and device tracker.
This commit is contained in:
parent
971fcb8297
commit
f67eb6dd25
7 changed files with 126 additions and 0 deletions
11
.editorconfig
Normal file
11
.editorconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
# http://editorconfig.org/
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/node_modules/
|
2
bin/stf
Executable file
2
bin/stf
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/usr/bin/env node
|
||||
require('../lib/cli')
|
15
lib/cli.js
Normal file
15
lib/cli.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
var program = require('commander')
|
||||
|
||||
var pkg = require('../package')
|
||||
|
||||
program
|
||||
.version(pkg.version)
|
||||
|
||||
program
|
||||
.command('provider')
|
||||
.description('run STF provider')
|
||||
.action(function() {
|
||||
require('./provider')
|
||||
})
|
||||
|
||||
program.parse(process.argv)
|
26
lib/provider.js
Normal file
26
lib/provider.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
var adb = require('adbkit')
|
||||
var async = require('async')
|
||||
|
||||
var log = require('./util/logger').createLogger('provider')
|
||||
var client = adb.createClient()
|
||||
|
||||
client.trackDevices(function(err, tracker) {
|
||||
if (err) {
|
||||
log.fatal('Unable to track devices: %s', err.message)
|
||||
throw err
|
||||
}
|
||||
|
||||
log.info('Tracking devices')
|
||||
|
||||
tracker.on('add', function(device) {
|
||||
log.info('Found device "%s" (%s)', device.id, device.type)
|
||||
})
|
||||
|
||||
tracker.on('change', function(device) {
|
||||
log.info('Device "%s" is now "%s"', device.id, device.type)
|
||||
})
|
||||
|
||||
tracker.on('remove', function(device) {
|
||||
log.info('Lost device "%s" (%s)', device.id, device.type)
|
||||
})
|
||||
})
|
59
lib/util/logger.js
Normal file
59
lib/util/logger.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
var util = require('util')
|
||||
|
||||
function Log(tag, stream) {
|
||||
this.tag = tag
|
||||
this.stream = stream || process.stderr
|
||||
this.levels = {
|
||||
DEBUG: 'DBG'
|
||||
, VERBOSE: 'VRB'
|
||||
, INFO: 'INF'
|
||||
, WARNING: 'WRN'
|
||||
, ERROR: 'ERR'
|
||||
, FATAL: 'FTL'
|
||||
}
|
||||
}
|
||||
|
||||
Log.prototype.debug = function() {
|
||||
this._write(this._format(this.levels.DEBUG, arguments))
|
||||
}
|
||||
|
||||
Log.prototype.verbose = function() {
|
||||
this._write(this._format(this.levels.VERBOSE, arguments))
|
||||
}
|
||||
|
||||
Log.prototype.info = function() {
|
||||
this._write(this._format(this.levels.INFO, arguments))
|
||||
}
|
||||
|
||||
Log.prototype.warn = function() {
|
||||
this._write(this._format(this.levels.WARNING, arguments))
|
||||
}
|
||||
|
||||
Log.prototype.error = function() {
|
||||
this._write(this._format(this.levels.ERROR, arguments))
|
||||
}
|
||||
|
||||
Log.prototype.fatal = function() {
|
||||
this._write(this._format(this.levels.FATAL, arguments))
|
||||
}
|
||||
|
||||
Log.prototype._format = function(priority, args) {
|
||||
return util.format('%s %s/%s %d %s\n',
|
||||
Log.prefix, priority, this.tag, process.pid, util.format.apply(util, args))
|
||||
}
|
||||
|
||||
Log.prototype._write = function(out) {
|
||||
this.stream.write(out)
|
||||
}
|
||||
|
||||
Log.prefix = '*'
|
||||
|
||||
Log.createLogger = function(tag) {
|
||||
return new Log(tag)
|
||||
}
|
||||
|
||||
Log.setPrefix = function(prefix) {
|
||||
Log.prefix = prefix
|
||||
}
|
||||
|
||||
exports = module.exports = Log
|
12
test/util/logger.js
Normal file
12
test/util/logger.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
var chai = require('chai')
|
||||
var expect = chai.expect
|
||||
|
||||
var logger = require('../../lib/util/logger')
|
||||
|
||||
describe('Logger', function() {
|
||||
|
||||
it('should have a createLogger method', function() {
|
||||
expect(logger).itself.to.respondTo('createLogger')
|
||||
})
|
||||
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue