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:
}