mirror of
https://github.com/showdownjs/showdown.git
synced 2024-03-22 13:30:55 +08:00
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.
This commit is contained in:
parent
4d78633c4d
commit
f3b86f06cc
|
@ -12,6 +12,18 @@ yargs
|
||||||
alias: 'help',
|
alias: 'help',
|
||||||
description: 'Show 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]')
|
.usage('Usage: showdown <command> [options]')
|
||||||
.demand(1, 'You must provide a valid command')
|
.demand(1, 'You must provide a valid command')
|
||||||
.command('makehtml', 'Converts markdown into html')
|
.command('makehtml', 'Converts markdown into html')
|
||||||
|
|
|
@ -46,6 +46,18 @@ yargs.reset()
|
||||||
alias : 'flavor',
|
alias : 'flavor',
|
||||||
describe: 'Run with a predetermined flavor of options. Default is vanilla',
|
describe: 'Run with a predetermined flavor of options. Default is vanilla',
|
||||||
type: 'string'
|
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
|
// load showdown default options
|
||||||
|
@ -70,7 +82,7 @@ function run() {
|
||||||
* MSG object
|
* MSG object
|
||||||
* @type {Messenger}
|
* @type {Messenger}
|
||||||
*/
|
*/
|
||||||
messenger = new Messenger(msgMode),
|
messenger = new Messenger(msgMode, argv.q, argv.m),
|
||||||
read = (readMode === 'stdin') ? readFromStdIn : readFromFile,
|
read = (readMode === 'stdin') ? readFromStdIn : readFromFile,
|
||||||
write = (writeMode === 'stdout') ? writeToStdOut : writeToFile,
|
write = (writeMode === 'stdout') ? writeToStdOut : writeToFile,
|
||||||
enc = argv.encoding || 'utf8',
|
enc = argv.encoding || 'utf8',
|
||||||
|
@ -106,8 +118,6 @@ function run() {
|
||||||
// write the output
|
// write the output
|
||||||
messenger.printMsg('Writing data to ' + writeMode + '...');
|
messenger.printMsg('Writing data to ' + writeMode + '...');
|
||||||
write(html, append);
|
write(html, append);
|
||||||
|
|
||||||
messenger.printMsg('\n');
|
|
||||||
messenger.okExit();
|
messenger.okExit();
|
||||||
|
|
||||||
function parseOptions(flavor) {
|
function parseOptions(flavor) {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
function Messenger(writeMode, supress, mute) {
|
function Messenger(writeMode, supress, mute) {
|
||||||
'use strict';
|
'use strict';
|
||||||
writeMode = writeMode || 'stderr';
|
writeMode = writeMode || 'stderr';
|
||||||
supress = !!supress;
|
supress = (!!supress || !!mute);
|
||||||
mute = (!!supress || !!mute);
|
mute = !!mute;
|
||||||
this._print = (writeMode === 'stdout') ? console.log : console.error;
|
this._print = (writeMode === 'stdout') ? console.log : console.error;
|
||||||
|
|
||||||
this.errorExit = function (e) {
|
this.errorExit = function (e) {
|
||||||
|
@ -15,6 +15,7 @@ function Messenger(writeMode, supress, mute) {
|
||||||
|
|
||||||
this.okExit = function () {
|
this.okExit = function () {
|
||||||
if (!mute) {
|
if (!mute) {
|
||||||
|
this._print('\n');
|
||||||
this._print('DONE!');
|
this._print('DONE!');
|
||||||
}
|
}
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|
|
@ -6,7 +6,7 @@ describe('showdown cli', function () {
|
||||||
if (semver.gt(process.versions.node, '0.12.0')) {
|
if (semver.gt(process.versions.node, '0.12.0')) {
|
||||||
var execSync = require('child_process').execSync;
|
var execSync = require('child_process').execSync;
|
||||||
it('basic stdin stdout', function () {
|
it('basic stdin stdout', function () {
|
||||||
var otp = execSync(cmd + ' makehtml', {
|
var otp = execSync(cmd + ' makehtml -q', {
|
||||||
encoding: 'utf8',
|
encoding: 'utf8',
|
||||||
input: '**foo**'
|
input: '**foo**'
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user