|
1 | 1 | #!/usr/bin/env node
|
2 | 2 |
|
3 | 3 | var pkg = require('./../package');
|
4 |
| -var program = require('commander'); |
| 4 | +var args = require('args'); |
5 | 5 | var slackin = require('./../node').default;
|
6 | 6 |
|
7 |
| -program |
8 |
| -.version(pkg.version) |
9 |
| -.usage('[options] <team-id> <api-token>') |
10 |
| -.option('-p, --port <port>', 'Port to listen on [$PORT or 3000]', require('hostenv').PORT || process.env.PORT || 3000) |
11 |
| -.option('-h, --hostname <hostname>', 'Hostname to listen on [$HOSTNAME or 0.0.0.0]', require('hostenv').HOSTNAME || process.env.WEBSITE_HOSTNAME || '0.0.0.0') |
12 |
| -.option('-c, --channels [<chan>]', 'One or more comma-separated channel names to allow single-channel guests [$SLACK_CHANNELS]', process.env.SLACK_CHANNELS) |
13 |
| -.option('-c, --channel <chan>', 'Single channel guest invite (deprecated) [$SLACK_CHANNEL]', process.env.SLACK_CHANNEL) |
14 |
| -.option('-i, --interval <int>', 'How frequently (ms) to poll Slack [$SLACK_INTERVAL or 5000]', process.env.SLACK_INTERVAL || 5000) |
15 |
| -.option('-P, --path <path>', 'Path to serve slackin under', '/') |
16 |
| -.option('-s, --silent', 'Do not print out warns or errors') |
17 |
| -.option('-C, --coc <coc>', 'Full URL to a CoC that needs to be agreed to') |
18 |
| -.option('-c, --css <file>', 'Full URL to a custom CSS file to use on the main page') |
19 |
| -.parse(process.argv); |
| 7 | +args |
| 8 | + .option(['p', 'port'], 'Port to listen on [$PORT or 3000]', require('hostenv').PORT || process.env.PORT || 3000) |
| 9 | + .option(['h', 'hostname'], 'Hostname to listen on [$HOSTNAME or 0.0.0.0]', require('hostenv').HOSTNAME || process.env.WEBSITE_HOSTNAME || '0.0.0.0') |
| 10 | + .option(['c', 'channels'], 'One or more comma-separated channel names to allow single-channel guests [$SLACK_CHANNELS]', process.env.SLACK_CHANNELS) |
| 11 | + .option(['i', 'interval'], 'How frequently (ms) to poll Slack [$SLACK_INTERVAL or 5000]', process.env.SLACK_INTERVAL || 5000) |
| 12 | + .option(['P', 'path'], 'Path to serve slackin under', '/') |
| 13 | + .option(['s', 'silent'], 'Do not print out warns or errors') |
| 14 | + .option(['C', 'coc'], 'Full URL to a CoC that needs to be agreed to') |
| 15 | + .option(['S', 'css'], 'Full URL to a custom CSS file to use on the main page'); |
20 | 16 |
|
21 |
| -var org = program.args[0] || process.env.SLACK_SUBDOMAIN; |
22 |
| -var token = program.args[1] || process.env.SLACK_API_TOKEN; |
| 17 | +var flags = args.parse(process.argv, { |
| 18 | + value: '<team-id> <api-token>' |
| 19 | +}); |
| 20 | + |
| 21 | +var org = args.sub[0] || process.env.SLACK_SUBDOMAIN; |
| 22 | +var token = args.sub[1] || process.env.SLACK_API_TOKEN; |
23 | 23 |
|
24 | 24 | if (!org || !token) {
|
25 |
| - program.help(); |
| 25 | + args.showHelp(); |
26 | 26 | } else {
|
27 |
| - program.org = org; |
28 |
| - program.token = token; |
| 27 | + flags.org = org; |
| 28 | + flags.token = token; |
29 | 29 | }
|
30 | 30 |
|
31 |
| -// support deprecated option |
32 |
| -if (!program.channels && program.channel) { |
33 |
| - program.channels = program.channel; |
34 |
| -} |
| 31 | +var port = flags.port; |
| 32 | +var hostname = flags.hostname; |
35 | 33 |
|
36 |
| -var port = program.port; |
37 |
| -var hostname = program.hostname; |
38 |
| -slackin(program).listen(port, hostname, function(err){ |
| 34 | +slackin(flags).listen(port, hostname, function(err){ |
39 | 35 | if (err) throw err;
|
40 |
| - if (!program.silent) console.log('%s – listening on %s:%d', new Date, hostname, port); |
| 36 | + if (!flags.silent) console.log('%s – listening on %s:%d', new Date, hostname, port); |
41 | 37 | });
|
0 commit comments