UNPKG

mongo-oplog2

Version:
92 lines 6.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.main = void 0; const fs = require("fs"); const util = require("util"); const prog = require("commander"); const __1 = require("../"); /** * Read a file into a Buffer. * @param filename file to read */ function readFile(filename) { return fs.readFileSync(filename); } async function main(args) { const argv = prog .version(require("../../package.json").version) // tslint:disable-line .usage("[options] [db host]") .option("--namespace <namespace>", "namespace filter") .option("--pretty", "pretty oplog doc format") .option("--replSet <replSetName>", "replica set name") .option("--since <since>", "oplog documents since x") .option("--ssl", "connect using SSL/TLS") .option("--sslCAFile <filename>", "Certificate Authority filename") .option("--sslCertFile <filename>", "Certificate filename") .option("--sslPEMKeyFile <filename>", "PEM Key filename") .option("--sslPEMKeyPassword <password>", "Password for key in PEM file") .parse(args); const mongoOpts = extractMongoClientOptions(argv); const oplogOpts = extractOplogOpts(argv); const hosts = argv.args.join() || 'localhost'; watchOplog(hosts, oplogOpts, mongoOpts); } exports.main = main; if (!module.parent) { main(process.argv); } function extractMongoClientOptions(opts) { const options = {}; if (opts.replSet) { options.replicaSet = opts.replSet; } if (opts.ssl) { options.ssl = true; } if (opts.sslCAFile) { options.sslCA = [readFile(opts.sslCAFile)]; } if (opts.sslCertFile) { options.sslCert = readFile(opts.sslCertFile); } if (opts.sslPEMKeyFile) { options.sslKey = readFile(opts.sslPEMKeyFile); if (opts.sslPEMKeyPassword) { options.sslPass = opts.sslPEMKeyPassword; } } // Make sure `ssl` flag is set if any SSL options are specified if (Object.keys(options).some(k => k.startsWith("ssl"))) { options.ssl = true; } return options; } function extractOplogOpts(opts) { const options = {}; if (opts.namespace) { options.ns = opts.namespace; } if (opts.since) { const since = opts.since; if (since.includes("-")) { options.since = (new Date(since)).getTime() / 1000; } else { options.since = parseFloat(since); } } if (opts.pretty) { options.pretty = true; } return options; } function watchOplog(hosts, oplogOpts, dbOpts) { const opts = Object.assign({}, oplogOpts, dbOpts); const oplog = new __1.MongoOplog(`mongodb://${hosts}/local`, opts); oplog.on("op", (doc) => { doc = JSON.parse(JSON.stringify(doc)); console.log(util.inspect(doc, { breakLength: Infinity, depth: null, colors: true })); }); oplog.tail(); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tb3Bsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL21vbmdvLW9wbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0Isa0NBQWtDO0FBR2xDLDJCQUEwQztBQUUxQzs7O0dBR0c7QUFDSCxTQUFTLFFBQVEsQ0FBQyxRQUFnQjtJQUM5QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJO1NBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLHNCQUFzQjtTQUNyRSxLQUFLLENBQUMscUJBQXFCLENBQUM7U0FDNUIsTUFBTSxDQUFDLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDO1NBQ3JELE1BQU0sQ0FBQyxVQUFVLEVBQUUseUJBQXlCLENBQUM7U0FDN0MsTUFBTSxDQUFDLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDO1NBQ3JELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQztTQUNwRCxNQUFNLENBQUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDO1NBQ3hDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxnQ0FBZ0MsQ0FBQztTQUNsRSxNQUFNLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUM7U0FDMUQsTUFBTSxDQUFDLDRCQUE0QixFQUFFLGtCQUFrQixDQUFDO1NBQ3hELE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSw4QkFBOEIsQ0FBQztTQUN4RSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQ2Y7SUFDRCxNQUFNLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJ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