You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/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();
}());
|