copay/bin/copay

53 lines
1.5 KiB
JavaScript
Executable File

#!/usr/bin/env node
var API = require('../API.js');
var commander = require('commander');
var main = function() {
commander
.version("0.0.1")
.option('-f, --file [file]', 'AES encrypted data file', 'api.json.aes')
.option('-p, --pass [passphrase]', 'AES wallet passphrase')
.option('-c, --client', 'Issue command over RPC to api daemon')
.option('-d, --daemon', 'Run as daemon accepting RPC commands')
.option('--rpcport [port]', 'RPC port [18332]', Number, 18332)
.option('--rpcuser [user]', 'RPC user [user]', String, 'user')
.option('--rpcpass [password]', 'RPC password [pass]', String, 'pass')
.parse(process.argv);
var api = new API(commander);
var args = commander.args;
var command = args[0];
var commandArgs = args.slice(1);
try {
if (command[0] == '_' || typeof api[command] != 'function')
throw new Error('invalid command');
api[command].apply(api, commandArgs.concat([function(err, result) {
if (err)
return console.log("" + err);
console.log(JSON.stringify(result, null, 2));
}]));
} catch(err) {
if (err.toString() == 'Error: invalid command') {
console.log("" + err);
}
else if (err.toString() == 'Error: invalid arguments') {
console.log("" + err);
console.log('Arguments for ' + command + ':')
api.getArgTypes(command, function(err, result) {
console.log(JSON.stringify(result, null, 2));
});
}
else
throw (err);
}
};
if (require.main === module) {
main();
}