diff --git a/lib/command.mjs b/lib/command.mjs index 4558d9f..a746222 100644 --- a/lib/command.mjs +++ b/lib/command.mjs @@ -1,10 +1,21 @@ const localhost = host => - process.getuid() === 0 && (host === 'localhost' || host === '0.0.0.0' || host === '127.0.0.1'); + process.getuid() === 0 && + (host === 'localhost' || host === '0.0.0.0' || host === '127.0.0.1'); -export default ({ request: { headers }, client: { conn } }, { user, host, port, auth }) => ({ +export default ( + { request: { headers }, client: { conn } }, + { user, host, port, auth }, +) => ({ args: localhost(host) ? ['login', '-h', conn.remoteAddress.split(':')[3]] - : ['ssh', address(headers, user, host), '-p', port, '-o', `PreferredAuthentications=${auth}`], + : [ + 'ssh', + address(headers, user, host), + '-p', + port, + '-o', + `PreferredAuthentications=${auth}`, + ], user: localhost(host) || user !== '' || user.includes('@'), }); diff --git a/lib/emitter.mjs b/lib/emitter.mjs index 5c477e6..a4b6f55 100644 --- a/lib/emitter.mjs +++ b/lib/emitter.mjs @@ -53,6 +53,7 @@ class WeTTy extends EventEmitter { auth, port, }); + this.emit('debug', `sshUser: ${sshUser}, args: ${args}`); if (sshUser) { term.spawn(socket, args); } else { diff --git a/lib/index.mjs b/lib/index.mjs index 4e480b8..bc52710 100644 --- a/lib/index.mjs +++ b/lib/index.mjs @@ -61,7 +61,8 @@ export default class { }) .on('spawn', ({ msg }) => logger.info(msg)) .on('connection', ({ msg, date }) => logger.info(`${date} ${msg}`)) - .on('server', ({ msg }) => logger.info(msg)); + .on('server', ({ msg }) => logger.info(msg)) + .on('debug', msg => logger.debug(msg)); return wetty.start( { user: sshuser, diff --git a/lib/logger.mjs b/lib/logger.mjs index 5d7aeec..a25a10f 100644 --- a/lib/logger.mjs +++ b/lib/logger.mjs @@ -7,9 +7,17 @@ const logger = createLogger({ colorize({ all: true }), label({ label: 'Wetty' }), timestamp(), - printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`), + printf( + info => + `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`, + ), ), - transports: [new transports.Console({ handleExceptions: true })], + transports: [ + new transports.Console({ + level: process.env.NODE_ENV === 'development' ? 'debug' : 'info', + handleExceptions: true, + }), + ], }); export default logger; diff --git a/lib/server.mjs b/lib/server.mjs index 3cf865d..1707d86 100644 --- a/lib/server.mjs +++ b/lib/server.mjs @@ -12,6 +12,7 @@ import events from './emitter.mjs'; const pubDir = path.join(__dirname, '..', 'public'); export default function createServer(port, { key, cert }) { + events.emit('debug', `key: ${key}, cert: ${cert}, port: ${port}`); const app = express(); const wetty = (req, res) => res.sendFile(path.join(pubDir, 'index.html')); app diff --git a/package.json b/package.json index 58baec7..13b9674 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "main": "index.js", "scripts": { - "lint": "eslint .", + "lint": "eslint --ext .js,.mjs .", "build": "webpack", "start": "node .", "dev":