You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.3 KiB
56 lines
1.3 KiB
#!/usr/bin/env node |
|
|
|
'use strict'; |
|
|
|
const pkg = require('../package'); |
|
|
|
const args = process.argv.slice(2); |
|
const arg_0 = args[0]; |
|
|
|
if (!!~['-v', '--version'].indexOf(arg_0)) { |
|
console.log(pkg.version); |
|
process.exit(0); |
|
} |
|
|
|
const port = parseInt(arg_0, 10); |
|
|
|
const main = require('..'); |
|
|
|
if (!arg_0) { |
|
const random = Math.floor(9000 + Math.random() * (65535 - 9000)); |
|
|
|
main(random, (err, port) => { |
|
if (err) { |
|
console.log(`get available port failed with ${err}`); |
|
} |
|
console.log(`get available port ${port} randomly`); |
|
}); |
|
} else if (isNaN(port)) { |
|
console.log(); |
|
console.log(` \u001b[37m${pkg.description}\u001b[0m`); |
|
console.log(); |
|
console.log(' Usage:'); |
|
console.log(); |
|
console.log(` ${pkg.name} [port]`); |
|
console.log(); |
|
console.log(' Options:'); |
|
console.log(); |
|
console.log(' -v, --version show version and exit'); |
|
console.log(' -h, --help output usage information'); |
|
console.log(); |
|
console.log(' Further help:'); |
|
console.log(); |
|
console.log(` ${pkg.homepage}`); |
|
console.log(); |
|
} else { |
|
main(port, (err, _port) => { |
|
if (err) { |
|
console.log(`get available port failed with ${err}`); |
|
} |
|
|
|
if (port !== _port) { |
|
console.log(`port ${port} was occupied`); |
|
} |
|
console.log(`get available port ${_port}`); |
|
}); |
|
}
|
|
|