bin/pegjs: Do not overwrite extension-less files

Running bin/pegjs with one argument which was an extension-less file
name caused the file to be overwritten. This was because internal
extension rewriting logic didn't handle this case corectly.

This commit changes the logic from regexp-based to path.extname-based,
fixing the problem. The new code generates file names like this:

  Input file name     Output file name
  grammar.ext         grammar.js
  grammar.ext1.ext2   grammar.ext1.js
  grammar.            grammar.js
  grammar             grammar.js

Fixes #405.
David Majda 8 years ago
parent 5eb6225ef0
commit 6a04067a76

@ -240,7 +240,7 @@ switch (args.length) {
var outputFile = args.length === 1
? args[0].replace(/\.[^.]*$/, ".js")
? args[0].substr(0, args[0].length - path.extname(args[0]).length) + ".js"
: args[1];
outputStream = fs.createWriteStream(outputFile);
outputStream.on("error", function() {