fix CLI when overwriting input
authoralexlamsl <alexlamsl@gmail.com>
Sat, 22 Jul 2017 08:01:50 +0000 (16:01 +0800)
committeralexlamsl <alexlamsl@gmail.com>
Sat, 22 Jul 2017 08:01:50 +0000 (16:01 +0800)
fixes #829

cli.js

diff --git a/cli.js b/cli.js
index aba7ec8..1f208bd 100755 (executable)
--- a/cli.js
+++ b/cli.js
@@ -148,11 +148,7 @@ mainOptionKeys.forEach(function(key) {
     program.option(key, option);
   }
 });
-program.option('-o --output <file>', 'Specify output file (if not specified STDOUT will be used for output)', function(outputPath) {
-  return fs.createWriteStream(outputPath).on('error', function(e) {
-    fatal('Cannot write ' + outputPath + '\n' + e.message);
-  });
-}, process.stdout);
+program.option('-o --output <file>', 'Specify output file (if not specified STDOUT will be used for output)');
 
 function readFile(file) {
   try {
@@ -280,7 +276,9 @@ function writeMinify() {
   catch (e) {
     fatal('Minification error:\n' + e.message);
   }
-  program.output.write(minified);
+  (program.output ? fs.createWriteStream(program.output).on('error', function(e) {
+    fatal('Cannot write ' + program.output + '\n' + e.message);
+  }) : process.stdout).write(minified);
 }
 
 var inputDir = program.inputDir;