diff --git a/bin/repairPad.js b/bin/repairPad.js new file mode 100644 index 000000000..4a90812c2 --- /dev/null +++ b/bin/repairPad.js @@ -0,0 +1,106 @@ +/* + This is a repair tool. It extracts all datas of a pad, removes and inserts them again. +*/ + +console.warn("WARNING: This script must not be used while etherpad is running!"); + +if(process.argv.length != 3) +{ + console.error("Use: node bin/repairPad.js $PADID"); + process.exit(1); +} +//get the padID +var padId = process.argv[2]; + +var db, padManager, pad, settings; +var neededDBValues = ["pad:"+padId]; + +var npm = require("../src/node_modules/npm"); +var async = require("../src/node_modules/async"); + +async.series([ + // load npm + function(callback) { + npm.load({}, function(er) { + if(er) + { + console.error("Could not load NPM: " + er) + process.exit(1); + } + else + { + callback(); + } + }) + }, + // load modules + function(callback) { + settings = require('../src/node/utils/Settings'); + db = require('../src/node/db/DB'); + callback(); + }, + //intallize the database + function (callback) + { + db.init(callback); + }, + //get the pad + function (callback) + { + padManager = require('../src/node/db/PadManager'); + + padManager.getPad(padId, function(err, _pad) + { + pad = _pad; + callback(err); + }); + }, + function (callback) + { + //add all authors + var authors = pad.getAllAuthors(); + for(var i=0;i