123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env node
- (function() {
- var fs = require('fs');
- var path = require('path');
- var parse = require('../parser').parse;
- var jsesc = require('jsesc');
- var regexes = process.argv.splice(2);
- var first = regexes[0];
- var data;
- var log = console.log;
- var flags = '';
- var main = function() {
- if (/^(?:-h|--help|undefined)$/.test(first)) {
- log([
- '\nUsage:\n',
- '\tregjsparser [regex ...]',
- '\tregjsparser [-f | --flags] u [regex ...]',
- '\tregjsparser [-v | --version]',
- '\tregjsparser [-h | --help]',
- '\nExamples:\n',
- '\tregjsparser \'^foo.bar$\'',
- '\tregjsparser \'[a-zA-Z0-9]\''
- ].join('\n'));
- return process.exit(1);
- }
- if (/^(?:-v|--version)$/.test(first)) {
- log('v%s', require(path.resolve(__dirname, '../package.json')).version);
- return process.exit(1);
- }
- if (/^(?:-f|--flags)$/.test(first)) {
- flags = regexes[1];
- regexes = regexes.slice(2);
- }
- regexes.forEach(function(snippet) {
- try {
- result = parse(snippet, flags);
- log(jsesc(result, {
- 'json': true,
- 'compact': false,
- 'indent': '\t'
- }));
- } catch(error) {
- log(error.message + '\n');
- log('Error: failed to parse. Make sure the regular expression is valid.');
- log('If you think this is a bug in regjsparser, please report it:');
- log('\thttps://github.com/jviereck/regjsparser/issues/new');
- log('\nStack trace:\n');
- log(error.stack);
- return process.exit(1);
- }
- });
- // Return with exit status 0 outside of the `forEach` loop, in case
- // multiple regular expressions were passed in.
- return process.exit(0);
- };
- main();
- }());
|