1 | #!/usr/bin/env node
|
2 |
|
3 | const minimist = require('minimist')
|
4 | const Server = require('../')
|
5 |
|
6 | const argv = minimist(process.argv.slice(2), {
|
7 | alias: {
|
8 | h: 'help',
|
9 | p: 'port',
|
10 | q: 'quiet',
|
11 | s: 'silent',
|
12 | v: 'version'
|
13 | },
|
14 | boolean: [
|
15 | 'help',
|
16 | 'quiet',
|
17 | 'silent',
|
18 | 'trust-proxy',
|
19 | 'version',
|
20 | 'stats'
|
21 | ],
|
22 | default: {
|
23 | port: 8000,
|
24 | stats: true
|
25 | }
|
26 | })
|
27 |
|
28 | if (argv.version) {
|
29 | console.log(require('../package.json').version)
|
30 | process.exit(0)
|
31 | }
|
32 |
|
33 | if (argv.help) {
|
34 | console.log((() => {
|
35 | |
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 | }).toString().split(/\n/).slice(2, -2).join('\n'))
|
54 | process.exit(0)
|
55 | }
|
56 |
|
57 | if (argv.silent) argv.quiet = true
|
58 |
|
59 | const server = new Server({
|
60 | interval: argv.interval,
|
61 | stats: argv.stats,
|
62 | trustProxy: argv['trust-proxy']
|
63 | })
|
64 |
|
65 | server.on('error', err => {
|
66 | if (!argv.silent) console.error('ERROR: ' + err.message)
|
67 | })
|
68 | server.on('warning', err => {
|
69 | if (!argv.quiet) console.log('WARNING: ' + err.message)
|
70 | })
|
71 | server.on('update', addr => {
|
72 | if (!argv.quiet) console.log('update: ' + addr)
|
73 | })
|
74 | server.on('complete', addr => {
|
75 | if (!argv.quiet) console.log('complete: ' + addr)
|
76 | })
|
77 | server.on('start', addr => {
|
78 | if (!argv.quiet) console.log('start: ' + addr)
|
79 | })
|
80 | server.on('stop', addr => {
|
81 | if (!argv.quiet) console.log('stop: ' + addr)
|
82 | })
|
83 |
|
84 | server.listen(argv.port, () => {
|
85 | if (server.ws && !argv.quiet) {
|
86 | const wsAddr = server.http.address()
|
87 | const wsHost = wsAddr.address !== '::' ? wsAddr.address : 'localhost'
|
88 | const wsPort = wsAddr.port
|
89 | console.log('Tracker: ws://' + wsHost + ':' + wsPort)
|
90 | }
|
91 | if (server.http && argv.stats && !argv.quiet) {
|
92 | const statsAddr = server.http.address()
|
93 | const statsHost = statsAddr.address !== '::' ? statsAddr.address : 'localhost'
|
94 | const statsPort = statsAddr.port
|
95 | console.log('Tracker stats: http://' + statsHost + ':' + statsPort + '/stats')
|
96 | }
|
97 | })
|