/* This is a debug tool. It checks all revisions of all pads for data corruption */ if(process.argv.length != 2) { console.error("Use: node bin/checkAllPads.js"); process.exit(1); } //initalize the variables var db, settings, padManager; var npm = require("../src/node_modules/npm"); var async = require("../src/node_modules/async"); var Changeset = require("../src/static/js/Changeset"); async.series([ //load npm function(callback) { npm.load({}, callback); }, //load modules function(callback) { settings = require('../src/node/utils/Settings'); db = require('../src/node/db/DB'); //initalize the database db.init(callback); }, //load pads function (callback) { padManager = require('../src/node/db/PadManager'); padManager.listAllPads(function(err, res) { var padIds = res.padIDs; pads = []; async.forEach(padIds, function(padId, callback) { padManager.getPad(padId, function(err, pad) { pads.push(pad); callback(err); }) }, callback); }); }, function (callback) { async.forEach(pads, function(pad, callback) { //create an array with key kevisions //key revisions always save the full pad atext var head = pad.getHeadRevisionNumber(); var keyRevisions = []; for(var i=0;i