/* This is a debug tool. It checks all revisions for data corruption */ if(process.argv.length != 3) { console.error("Use: node bin/checkPad.js $PADID"); process.exit(1); } //get the padID var padId = process.argv[2]; //initialize the variables var db, settings, padManager; var npm = require("../src/node_modules/npm"); var async = require("../src/node_modules/async"); var Changeset = require("ep_etherpad-lite/static/js/Changeset"); async.series([ //load npm function(callback) { npm.load({}, function(er) { callback(er); }) }, //load modules function(callback) { settings = require('../src/node/utils/Settings'); db = require('../src/node/db/DB'); //initialize the database db.init(callback); }, //get the pad function (callback) { padManager = require('../src/node/db/PadManager'); padManager.doesPadExists(padId, function(err, exists) { if(!exists) { console.error("Pad does not exist"); process.exit(1); } padManager.getPad(padId, function(err, _pad) { pad = _pad; callback(err); }); }); }, function (callback) { //create an array with key revisions //key revisions always save the full pad atext var head = pad.getHeadRevisionNumber(); var keyRevisions = []; for(var i=0;i