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.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							1.7 KiB
						
					
					
				| #!/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(); | |
| 
 | |
| }());
 |