Initial commit
[yaffs-website] / node_modules / bin-version-check / index.js
1 'use strict';
2 var semver = require('semver');
3 var binVersion = require('bin-version');
4 var semverTruncate = require('semver-truncate');
5
6 module.exports = function (bin, versionRange, cb) {
7         if (typeof bin !== 'string' || typeof versionRange !== 'string') {
8                 throw new Error('`binary` and `versionRange` required');
9         }
10
11         if (!semver.validRange(versionRange)) {
12                 return cb(new Error('Invalid version range'));
13         }
14
15         binVersion(bin, function (err, binVersion) {
16                 if (err) {
17                         return cb(err);
18                 }
19
20                 if (!semver.satisfies(semverTruncate(binVersion, 'patch'), versionRange)) {
21                         err = new Error(bin + ' ' + binVersion + ' does not satisfy the version requirement of ' + versionRange);
22                         err.name = 'InvalidBinVersion';
23                         return cb(err);
24                 }
25
26                 cb();
27         });
28 };