redis-dump
Version:
Dump redis database into redis commands or json with command line or node.js
53 lines (45 loc) • 2.34 kB
JavaScript
(function() {
var argv, doDump, dump, fs, params, path, pkg, ref, ref1, ref2, ref3, ref4, ref5;
fs = require('fs');
path = require('path');
argv = require('optimist').argv;
dump = require('./dump');
pkg = JSON.parse(fs.readFileSync(path.normalize(__dirname + '/../package.json'), 'utf8'));
if (argv.help) {
console.log(pkg.name + " " + pkg.version + "\n\nUsage: redis-dump [OPTIONS]\n -h <hostname> Server hostname (default: 127.0.0.1)\n -p <port> Server port (default: 6379)\n -d <db> Database number (default: 0)\n -a <auth> Password\n -f <filter> Query filter (default: *)\n --convert Convert from json to redis commands\n --help Output this help and exit\n --json Output result as json\n --pretty Make pretty indented output (use with --json)\n\nExamples:\n redis-dump\n redis-dump -p 6500\n redis-dump -f 'mydb:*' > mydb.dump.txt\n redis-dump --json > mydb.json\n cat mydb.json | redis-dump --convert\n\nThe output is a valid list of redis commands.\nThat means the following will work:\n redis-dump > dump.txt # Dump redis database\n cat dump.txt | redis-cli # Import redis database from generated file\n");
} else {
params = {
filter: (ref = argv.f) != null ? ref : '*',
db: (ref1 = argv.d) != null ? ref1 : 0,
port: (ref2 = argv.p) != null ? ref2 : 6379,
auth: (ref3 = argv.a) != null ? ref3 : null,
host: (ref4 = argv.h) != null ? ref4 : '127.0.0.1',
format: argv.json ? 'json' : 'redis',
pretty: (ref5 = argv.pretty) != null ? ref5 : false
};
doDump = function() {
return dump(params, function(err, result) {
var ref6;
if (err != null) {
return process.stderr.write(((ref6 = err.message) != null ? ref6 : err) + "\n");
}
if ((result != null) && ("" + result).replace(/^\s+/, '').replace(/\s+$/, '') !== '') {
console.log(result);
}
return process.exit(0);
});
};
if (argv.convert) {
params.convert = '';
process.stdin.resume();
process.stdin.on('data', function(chunk) {
return params.convert += "" + chunk;
});
process.stdin.on('end', function() {
return doDump();
});
} else {
doDump();
}
}
}).call(this);