1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- var util = require('util');
- var defaults = require('lodash.defaults');
- var debug = require('debug')('tunnel-ssh-config');
- var ConfigError = function (message, extra) {
- Error.captureStackTrace(this, this.constructor);
- this.name = this.constructor.name;
- this.message = message;
- this.extra = extra;
- };
- util.inherits(ConfigError, Error);
- function createConfig(config) {
- var env = process.env;
- defaults(config || {}, {
- username: env.TUNNELSSH_USER || env.USER || env.USERNAME || 'root',
- port: 22,
- host: null,
- srcPort: 0,
- srcHost: '127.0.0.1',
- dstPort: null,
- dstHost: '127.0.0.1',
- localHost: '127.0.0.1',
- localPort: config.dstPort,
- agent: process.env.SSH_AUTH_SOCK
- });
- if (!config.host) {
- throw new ConfigError('host not set');
- }
- if (!config.dstPort) {
- throw new ConfigError('dstPort not set');
- }
- debug('ssh-config', (function () {
- var hiddenValues = ['password', 'privateKey'];
- return Object.keys(config).reduce(function (obj, key) {
- if (hiddenValues.indexOf(key) === -1) {
- obj[key] = config[key];
- } else {
- obj[key] = '***HIDDEN***';
- }
- return obj;
- }, {});
- })());
- return config;
- }
- module.exports = createConfig;
|