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()
- }())
|