description and source-codeelasticdump = function (input, output, options) {
var self = this
self.input = input
self.output = output
self.options = options
if (self.options.toLog === null || self.options.toLog === undefined) {
self.options.toLog = true
}
self.validationErrors = self.validateOptions()
if (options.maxSockets) {
self.log('globally setting maxSockets=' + options.maxSockets)
http.globalAgent.maxSockets = options.maxSockets
https.globalAgent.maxSockets = options.maxSockets
}
var InputProto
if (self.options.input && !self.options.inputTransport) {
if (isUrl(self.options.input)) {
self.inputType = 'elasticsearch'
if (self.options.httpAuthFile) {
self.options.input = addAuth(self.options.input, self.options.httpAuthFile)
}
} else {
self.inputType = 'file'
}
InputProto = require(path.join(__dirname, 'lib', 'transports', self.inputType))[self.inputType]
self.input = (new InputProto(self, self.options.input, self.options['input-index']))
} else if (self.options.inputTransport) {
self.inputType = String(self.options.inputTransport)
InputProto = require(self.options.inputTransport)
var inputProtoKeys = Object.keys(InputProto)
self.input = (new InputProto[inputProtoKeys[0]](self, self.options.input, self.options['input-index']))
}
var OutputProto
if (self.options.output && !self.options.outputTransport) {
if (isUrl(self.options.output)) {
self.outputType = 'elasticsearch'
if (self.options.httpAuthFile) {
self.options.output = addAuth(self.options.output, self.options.httpAuthFile)
}
} else {
self.outputType = 'file'
if (self.options.output === '$') { self.options.toLog = false }
}
OutputProto = require(path.join(__dirname, 'lib', 'transports', self.outputType))[self.outputType]
self.output = (new OutputProto(self, self.options.output, self.options['output-index']))
} else if (self.options.outputTransport) {
self.outputType = String(self.options.outputTransport)
OutputProto = require(self.options.outputTransport)
var outputProtoKeys = Object.keys(OutputProto)
self.output = (new OutputProto[outputProtoKeys[0]](self, self.options.output, self.options['output-index']))
}
if (self.options.type === 'data' && self.options.transform) {
var modificationScriptText = '(function(doc) { ' + self.options.transform + ' })'
self.modifier = new vm.Script(modificationScriptText).runInNewContext()
}
}