Files
server/bin/server
T
2018-02-28 21:10:33 -05:00

64 lines
1.4 KiB
JavaScript
Executable File

#!/usr/bin/env node
require('localenv');
require('babel-register');
const log = require('book');
const debug = require('debug')('localtunnel');
const optimist = require('optimist');
const argv = optimist
.usage('Usage: $0 --port [num]')
.options('secure', {
default: false,
describe: 'use this flag to indicate proxy over https'
})
.options('port', {
default: '80',
describe: 'listen on this port for outside requests'
})
.options('sub-host', {
describe: 'additionally listen on these sub hosts for outside requests',
type: 'array'
})
.options('max-sockets', {
default: 10,
describe: 'maximum number of tcp sockets each client is allowed to establish at one time (the tunnels)'
})
.argv;
if (argv.help) {
optimist.showHelp();
process.exit();
}
const server = require('../server')({
max_tcp_sockets: argv['max-sockets'],
secure: argv.secure,
port: argv.port,
subHost: argv['sub-host']
});
server.listen(argv.port, () => {
debug('server listening on port: %d', server.address().port);
});
process.on('SIGINT', () => {
process.exit();
});
process.on('SIGTERM', () => {
process.exit();
});
process.on('uncaughtException', (err) => {
log.error(err);
});
process.on('unhandledRejection', (reason, promise) => {
log.error(reason);
});
// vim: ft=javascript