| #!/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(); |
| |
| }()); |