UNPKG

chainscript

Version:
90 lines (67 loc) 2.38 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 _utilsHashFiles = require('../utils/hashFiles'); var _utilsHashFiles2 = _interopRequireDefault(_utilsHashFiles); var paths = undefined; var args = []; var chainscriptArgs = []; var execChainscript = false; process.argv.forEach(function (arg) { if (arg === '--') { execChainscript = true; return; } if (execChainscript) { chainscriptArgs.push(arg); } else { args.push(arg); } }); _commander2['default'].version(_utilsReadPackageSync2['default']('version')).usage('[options] [path...] [-- chainscript args]').option('-a, --algorithm <name>', 'hash algorithm (default sha256)').option('-r, --root <path>', 'JSON root path').parse(args); if (_commander2['default'].args.length > 0) { paths = _commander2['default'].args.map(function (p) { return _path2['default'].resolve(process.cwd(), p); }); } else { paths = [process.cwd()]; } function handleOutput(output) { var str = JSON.stringify(output, null, '\t') + '\n'; process.stdout.write(str, function () { return process.exit(0); }); } function handleError(err) { process.stderr.write(err.message + '\n', function () { return process.exit(1); }); } _utilsHashFiles2['default'](process.cwd(), paths, _commander2['default'].algorithm, _commander2['default'].root).then(function (json) { if (execChainscript) { var hasAt = false; chainscriptArgs = chainscriptArgs.map(function (arg) { if (arg === '@') { hasAt = true; return JSON.stringify(json); } return arg; }); try { _child_process.execFileSync(_path2['default'].resolve(__dirname, '../../bin/chainscript'), chainscriptArgs, { input: hasAt ? null : JSON.stringify(json), stdio: [hasAt ? process.stdin : 'pipe', process.stdout, process.stderr] }); } catch (err) { handleError(err); } return; } handleOutput(json); })['catch'](handleError);