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