Parcourir la source

feat(CLI): add -q (quiet) and -m (mute) mode to CLI

-q supresses all normal messages from the output, but still reports errors.
-m mutes all messages, even errors.
Estevao Soares dos Santos il y a 8 ans
Parent
commit
f3b86f06cc
4 fichiers modifiés avec 29 ajouts et 6 suppressions
  1. 12 0
      src/cli/cli.js
  2. 13 3
      src/cli/makehtml.cmd.js
  3. 3 2
      src/cli/messenger.js
  4. 1 1
      test/node/cli.js

+ 12 - 0
src/cli/cli.js

@@ -12,6 +12,18 @@ yargs
     alias: 'help',
     description: 'Show help'
   })
+  .option('q', {
+    alias: 'quiet',
+    description: 'Quiet mode. Only print errors',
+    type: 'boolean',
+    default: false
+  })
+  .option('m', {
+    alias: 'mute',
+    description: 'Mute mode. Does not print anything',
+    type: 'boolean',
+    default: false
+  })
   .usage('Usage: showdown <command> [options]')
   .demand(1, 'You must provide a valid command')
   .command('makehtml', 'Converts markdown into html')

+ 13 - 3
src/cli/makehtml.cmd.js

@@ -46,6 +46,18 @@ yargs.reset()
     alias : 'flavor',
     describe: 'Run with a predetermined flavor of options. Default is vanilla',
     type: 'string'
+  })
+  .option('q', {
+    alias: 'quiet',
+    description: 'Quiet mode. Only print errors',
+    type: 'boolean',
+    default: false
+  })
+  .option('m', {
+    alias: 'mute',
+    description: 'Mute mode. Does not print anything',
+    type: 'boolean',
+    default: false
   });
 
 // load showdown default options
@@ -70,7 +82,7 @@ function run() {
        * MSG object
        * @type {Messenger}
        */
-      messenger = new Messenger(msgMode),
+      messenger = new Messenger(msgMode, argv.q, argv.m),
       read = (readMode === 'stdin') ? readFromStdIn : readFromFile,
       write = (writeMode === 'stdout') ? writeToStdOut : writeToFile,
       enc = argv.encoding || 'utf8',
@@ -106,8 +118,6 @@ function run() {
   // write the output
   messenger.printMsg('Writing data to ' + writeMode + '...');
   write(html, append);
-
-  messenger.printMsg('\n');
   messenger.okExit();
 
   function parseOptions(flavor) {

+ 3 - 2
src/cli/messenger.js

@@ -1,8 +1,8 @@
 function Messenger(writeMode, supress, mute) {
   'use strict';
   writeMode = writeMode || 'stderr';
-  supress = !!supress;
-  mute = (!!supress || !!mute);
+  supress = (!!supress || !!mute);
+  mute = !!mute;
   this._print = (writeMode === 'stdout') ? console.log : console.error;
 
   this.errorExit = function (e) {
@@ -15,6 +15,7 @@ function Messenger(writeMode, supress, mute) {
 
   this.okExit = function () {
     if (!mute) {
+      this._print('\n');
       this._print('DONE!');
     }
     process.exit(0);

+ 1 - 1
test/node/cli.js

@@ -6,7 +6,7 @@ describe('showdown cli', function () {
   if (semver.gt(process.versions.node, '0.12.0')) {
     var execSync = require('child_process').execSync;
     it('basic stdin stdout', function () {
-      var otp = execSync(cmd + ' makehtml', {
+      var otp = execSync(cmd + ' makehtml -q', {
         encoding: 'utf8',
         input: '**foo**'
       });