You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.6 KiB
57 lines
1.6 KiB
#!/usr/bin/env node
|
|
|
|
var program = require('commander');
|
|
var qr = require('qr-image');
|
|
var fs = require('fs');
|
|
var _ = require('lodash');
|
|
|
|
var Client = require('../lib/client');
|
|
var utils = require('./cli-utils');
|
|
program = utils.configureCommander(program);
|
|
|
|
program
|
|
.option('-a, --access [level]', 'access privileges for exported data (full, readwrite, readonly)', 'full')
|
|
.option('-q, --qr', 'export a QR code')
|
|
.option('-o, --output [filename]', 'output file');
|
|
|
|
program.on('--help', function() {
|
|
console.log(' Access Levels:');
|
|
console.log('');
|
|
console.log(' readonly : allows to read wallet data: balance, tx proposals ');
|
|
console.log(' readwrite: + allows to create addresses and unsigned tx prposals ');
|
|
console.log(' full : + allows sign tx prposals ');
|
|
console.log('');
|
|
});
|
|
|
|
program
|
|
.parse(process.argv);
|
|
|
|
var args = program.args;
|
|
var client = utils.getClient(program);
|
|
|
|
if (!_.contains(['full', 'readwrite', 'readonly'], program.access)) {
|
|
program.help();
|
|
}
|
|
|
|
var msg = ' Access Level: ' + program.access;
|
|
|
|
client.export({
|
|
access: program.access
|
|
}, function(err, x) {
|
|
utils.die(err);
|
|
if (program.qr) {
|
|
var filename = program.file + '.svg';
|
|
var qr_svg = qr.image(x, {
|
|
type: 'svg'
|
|
});
|
|
qr_svg.pipe(fs.createWriteStream(filename));
|
|
console.log('Wallet Critical Data: exported to %s. %s\n',filename, msg);
|
|
} else {
|
|
if (program.output) {
|
|
fs.writeFileSync(program.output, x);
|
|
console.log('Wallet Critical Data saved at %s. %s\n', program.output, msg);
|
|
} else {
|
|
console.log('Wallet Critical Data (%s)\n%s', msg, x);
|
|
}
|
|
}
|
|
});
|
|
|