add tools

This commit is contained in:
Matias Alejo Garcia 2014-11-11 08:59:20 -03:00
parent 47c66c4c33
commit b617b500cf
2 changed files with 89 additions and 0 deletions

26
util/dbdump.js Normal file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env node
'use strict';
var levelup = require('levelup');
var dbPath = process.argv[2];
var s = process.argv[3];
console.log('DB: ',dbPath); //TODO
var db = levelup(dbPath );
db.createReadStream({start: s, end: s+'~'})
.on('data', function (data) {
console.log(data.key + ' => ' + data.value); //TODO
})
.on('error', function () {
})
.on('end', function () {
});

63
util/migration.js Normal file
View File

@ -0,0 +1,63 @@
var levelup = require('levelup');
var bitcore = require('bitcore');
var _ = require('lodash');
var home = process.env['HOME'];
var db = new levelup(process.argv[2] || (home + '/.insight/testnet/emailstore'));
var newDb = new levelup(process.argv[3] || (home + '/.insight/testnet/emailstore.migrated'));
var transformStoredValue = function(key) {
var oldKey = key.substr('credentials-store-'.length);
return 'emailstore-' + bitcore.util.twoSha256(oldKey).toString('hex');
};
var transformPending = function(key) {
var oldKey = key.substr('validation-code-'.length);
return 'pending-' + oldKey;
};
var transformPassphrase = function(key) {
var oldKey = key.substr('map-email-'.length);
return 'email-to-passphrase-' + bitcore.util.twoSha256(oldKey).toString('hex');
};
var transformValidated = function(key) {
var oldKey = key.substr('validated-email-'.length);
return 'validated-' + bitcore.util.twoSha256(oldKey).toString('hex');
};
var checks = {
'credentials-store-': transformStoredValue,
'validation-code-': transformPending,
'map-email-': transformPassphrase,
'validated-email': transformValidated
};
db.createReadStream()
.on('data', function(data) {
console.log('- Analizing key: ' + data.key);
_.each(checks, function(checkFunction, checkName) {
if (data.key.indexOf(checkName) === 0) {
db.get('migration-' + data.key, function(err, value) {
if ((err && err.notFound) || data.value !== value) {
var newKey = checkFunction(data.key);
if (data.value !== value) {
console.log(' - ' + newKey + ' outdated, migrating...')
} else {
console.log(' - ' + data.key + ' not migrated, migrating to ' + newKey);
}
newDb.put(newKey, data.value, function(err) {
if (err) {
console.log(' - Error migrating ' + data.key + '!', err);
} else {
db.put('migration-' + data.key, data.value, function() {});
}
});
}
});
}
});
});