UNPKG

chainscript

Version:
104 lines (80 loc) 2.51 kB
'use strict'; 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]); }