chainscript
Version:
Client for chainscript.io
104 lines (80 loc) • 2.51 kB
JavaScript
;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _child_process = require('child_process');
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _utilsReadPackageSync = require('../utils/readPackageSync');
var _utilsReadPackageSync2 = _interopRequireDefault(_utilsReadPackageSync);
var _utilsVerifyFiles = require('../utils/verifyFiles');
var _utilsVerifyFiles2 = _interopRequireDefault(_utilsVerifyFiles);
var args = [];
var chainscriptArgs = [];
var execChainscript = false;
var script = undefined;
process.argv.forEach(function (arg) {
if (arg === '--') {
execChainscript = true;
return;
}
if (execChainscript) {
chainscriptArgs.push(arg);
} else {
args.push(arg);
}
});
function handleError(err) {
process.stderr.write(err.message + '\n', function () {
return process.exit(1);
});
}
function handleInput(input) {
try {
var json = JSON.parse(input);
_utilsVerifyFiles2['default'](process.cwd(), json, _commander2['default'].root).then(function () {
process.stdout.write('Success\n');
process.exit(0);
})['catch'](handleError);
} catch (err) {
handleError(err);
}
}
if (execChainscript) {
try {
script = _child_process.execFileSync(_path2['default'].resolve(__dirname, '../../bin/chainscript'), chainscriptArgs, {
stdio: [process.stdin, null, process.stderr],
encoding: 'utf8'
});
} catch (err) {
handleError(err);
}
}
_commander2['default'].version(_utilsReadPackageSync2['default']('version')).usage('[options] [hashes] [-- chainscript args]').option('-r, --root <path>', 'JSON root path').parse(args);
if (script) {
if (_commander2['default'].args.length > 0) {
_commander2['default'].outputHelp();
process.exit(1);
}
handleInput(script);
} else if (_commander2['default'].args.length === 0) {
script = '';
process.stdin.setEncoding('utf8');
process.stdin.on('readable', function () {
var chunk = process.stdin.read();
if (chunk !== null) {
script += chunk.toString();
}
});
process.stdin.on('end', function () {
script = script.replace(/\n$/, '');
if (script.length) {
handleInput(script);
} else {
_commander2['default'].outputHelp();
process.exit(1);
}
});
} else {
handleInput(_commander2['default'].args[0]);
}