1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00

Move matchesRequirements to devutil.

This commit is contained in:
Simo Kinnunen 2014-01-30 17:02:29 +09:00
parent 1616840818
commit cadc7a17d0
3 changed files with 33 additions and 32 deletions

View file

@ -288,7 +288,7 @@ module.exports = function(options) {
case wire.MessageType.GROUP: case wire.MessageType.GROUP:
var message = wire.GroupMessage.decode(wrapper.message) var message = wire.GroupMessage.decode(wrapper.message)
, groupChannel = message.channel , groupChannel = message.channel
if (wireutil.matchesRequirements(identity, message.requirements)) { if (devutil.matchesRequirements(identity, message.requirements)) {
channels.register(groupChannel, message.timeout) channels.register(groupChannel, message.timeout)
log.info('Subscribing to group channel "%s"', groupChannel) log.info('Subscribing to group channel "%s"', groupChannel)
sub.subscribe(groupChannel) sub.subscribe(groupChannel)

View file

@ -2,12 +2,44 @@ var util = require('util')
var split = require('split') var split = require('split')
var Promise = require('bluebird') var Promise = require('bluebird')
var semver = require('semver')
var minimatch = require('minimatch')
var wire = require('../wire') var wire = require('../wire')
var pathutil = require('./pathutil') var pathutil = require('./pathutil')
var devutil = module.exports = Object.create(null) var devutil = module.exports = Object.create(null)
devutil.matchesRequirements = function(capabilities, requirements) {
return requirements.every(function(req) {
var capability = capabilities[req.name]
if (!capability) {
return false
}
switch (req.type) {
case wire.RequirementType.SEMVER:
if (!semver.satisfies(capability, req.value)) {
return false
}
break
case wire.RequirementType.GLOB:
if (!minimatch(capability, req.value)) {
return false
}
break
case wire.RequirementType.EXACT:
if (capability !== req.value) {
return false
}
break
default:
return false
}
})
}
devutil.vendorFiles = function(identity) { devutil.vendorFiles = function(identity) {
return { return {
bin: { bin: {

View file

@ -1,5 +1,3 @@
var semver = require('semver')
var minimatch = require('minimatch')
var uuid = require('node-uuid') var uuid = require('node-uuid')
module.exports = function(wire) { module.exports = function(wire) {
@ -24,35 +22,6 @@ module.exports = function(wire) {
, emulator: 'VIRTUAL' , emulator: 'VIRTUAL'
}[type]] }[type]]
} }
, matchesRequirements: function(capabilities, requirements) {
return requirements.every(function(req) {
var capability = capabilities[req.name]
if (!capability) {
return false
}
switch (req.type) {
case wire.RequirementType.SEMVER:
if (!semver.satisfies(capability, req.value)) {
return false
}
break
case wire.RequirementType.GLOB:
if (!minimatch(capability, req.value)) {
return false
}
break
case wire.RequirementType.EXACT:
if (capability !== req.value) {
return false
}
break
default:
return false
}
})
}
, envelope: function(type, message) { , envelope: function(type, message) {
return new wire.Envelope(type, message.encode()).encodeNB() return new wire.Envelope(type, message.encode()).encodeNB()
} }