Name: js-handler/node_modules/restify/node_modules/semver/bin/semver
| 1: | #!/usr/bin/env node |
| 2: | // Standalone semver comparison program. |
| 3: | // Exits successfully and prints matching version(s) if |
| 4: | // any supplied version is valid and passes all tests. |
| 5: | |
| 6: | var argv = process.argv.slice(2) |
| 7: | , versions = [] |
| 8: | , range = [] |
| 9: | , gt = [] |
| 10: | , lt = [] |
| 11: | , eq = [] |
| 12: | , semver = require("../semver") |
| 13: | |
| 14: | main() |
| 15: | |
| 16: | function main () { |
| 17: | if (!argv.length) return help() |
| 18: | while (argv.length) { |
| 19: | var a |
| 20: | switch (a = argv.shift()) { |
| 21: | case "-v": case "--version": |
| 22: | versions.push(argv.shift()) |
| 23: | break |
| 24: | case "-r": case "--range": |
| 25: | range.push(argv.shift()) |
| 26: | break |
| 27: | case "-h": case "--help": case "-?": |
| 28: | return help() |
| 29: | default: |
| 30: | versions.push(a) |
| 31: | break |
| 32: | } |
| 33: | } |
| 34: | |
| 35: | versions = versions.filter(semver.valid) |
| 36: | if (!versions.length) return fail() |
| 37: | for (var i = 0, l = range.length; i < l ; i ++) { |
| 38: | versions = versions.filter(function (v) { |
| 39: | return semver.satisfies(v, range[i]) |
| 40: | }) |
| 41: | if (!versions.length) return fail() |
| 42: | } |
| 43: | return success(versions) |
| 44: | } |
| 45: | |
| 46: | function fail () { process.exit(1) } |
| 47: | |
| 48: | function success () { |
| 49: | versions.sort(semver.compare) |
| 50: | .map(semver.clean) |
| 51: | .forEach(function (v,i,_) { console.log(v) }) |
| 52: | } |
| 53: | |
| 54: | function help () { |
| 55: | console.log(["Usage: semver -v <version> [-r <range>]" |
| 56: | ,"Test if version(s) satisfy the supplied range(s)," |
| 57: | ,"and sort them." |
| 58: | ,"" |
| 59: | ,"Multiple versions or ranges may be supplied." |
| 60: | ,"" |
| 61: | ,"Program exits successfully if any valid version satisfies" |
| 62: | ,"all supplied ranges, and prints all satisfying versions." |
| 63: | ,"" |
| 64: | ,"If no versions are valid, or ranges are not satisfied," |
| 65: | ,"then exits failure." |
| 66: | ,"" |
| 67: | ,"Versions are printed in ascending order, so supplying" |
| 68: | ,"multiple versions to the utility will just sort them." |
| 69: | ].join("\n")) |
| 70: | } |
