#!/usr/bin/env node /* -*- Mode:Js */ /* vim: set expandtab ts=4 sw=4: */ /* * You may redistribute this program and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation, * either version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ var Cjdns = require('../contrib/nodejs/cjdnsadmin/cjdnsadmin'); var nThen = require('../contrib/nodejs/cjdnsadmin/nthen'); var cjdns; nThen(function (waitFor) { Cjdns.connectWithAdminInfo(waitFor(function (c) { cjdns = c; })); }).nThen(function (waitFor) { var code; if (process.argv[process.argv.length-1].indexOf('cexec') !== -1) { code = 'functions(cb)'; console.log("Usage: ./tools/cexec 'ping()' ## For example to send a ping request"); console.log("List of available RPC requests with parameters is as follows:"); } else { code = process.argv[process.argv.length-1].replace(/\).*$/, ',cb);'); code = code.replace('(,cb);', '(cb);'); } var f = new Function('x', 'cb', 'x.' + code); f(cjdns, function (err, ret) { if (err) { throw err; } console.log(JSON.stringify(ret, null, ' ')); cjdns.disconnect(); }); });