51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env node
 | 
						|
(function() {
 | 
						|
 | 
						|
  var fs = require('fs');
 | 
						|
  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 main = function() {
 | 
						|
    if (/^(?:-h|--help|undefined)$/.test(first)) {
 | 
						|
      log([
 | 
						|
        '\nUsage:\n',
 | 
						|
        '\tregjsparser [regex ...]',
 | 
						|
        '\tregjsparser [-h | --help]',
 | 
						|
        '\nExamples:\n',
 | 
						|
        '\tregjsparser \'^foo.bar$\'',
 | 
						|
        '\tregjsparser \'[a-zA-Z0-9]\''
 | 
						|
      ].join('\n'));
 | 
						|
      return process.exit(1);
 | 
						|
    }
 | 
						|
 | 
						|
    regexes.forEach(function(snippet) {
 | 
						|
      var result;
 | 
						|
      try {
 | 
						|
        result = parse(snippet);
 | 
						|
        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();
 | 
						|
 | 
						|
}());
 |