1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-03 17:59:28 +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:
var message = wire.GroupMessage.decode(wrapper.message)
, groupChannel = message.channel
if (wireutil.matchesRequirements(identity, message.requirements)) {
if (devutil.matchesRequirements(identity, message.requirements)) {
channels.register(groupChannel, message.timeout)
log.info('Subscribing to group channel "%s"', groupChannel)
sub.subscribe(groupChannel)

View file

@ -2,12 +2,44 @@ var util = require('util')
var split = require('split')
var Promise = require('bluebird')
var semver = require('semver')
var minimatch = require('minimatch')
var wire = require('../wire')
var pathutil = require('./pathutil')
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) {
return {
bin: {

View file

@ -1,5 +1,3 @@
var semver = require('semver')
var minimatch = require('minimatch')
var uuid = require('node-uuid')
module.exports = function(wire) {
@ -24,35 +22,6 @@ module.exports = function(wire) {
, emulator: 'VIRTUAL'
}[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) {
return new wire.Envelope(type, message.encode()).encodeNB()
}