mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-12-23 05:37:23 +00:00
Move output messages to YAML.
This commit is contained in:
parent
88879257e6
commit
fc67f680ee
46
src/cli/msg.yml
Normal file
46
src/cli/msg.yml
Normal file
@ -0,0 +1,46 @@
|
||||
beforeCreate:
|
||||
msg: Creating new **%s** resume: **%s**
|
||||
beforeRead:
|
||||
msg: Reading resume: **%s**
|
||||
beforeTheme:
|
||||
msg: Verifying theme: **%s**
|
||||
afterTheme:
|
||||
msg: Verifying outputs: ???
|
||||
beforeMerge:
|
||||
msg:
|
||||
- Merging **%s**
|
||||
- " onto **%s**"
|
||||
afterMerge:
|
||||
msg: Applying **%s** theme (%s format%s)
|
||||
afterBuild:
|
||||
msg:
|
||||
- "The **%s** theme says:"
|
||||
- |
|
||||
"For best results view JSON Resume themes over a
|
||||
local or remote HTTP connection. For example:
|
||||
|
||||
npm install http-server -g
|
||||
http-server <resume-folder>
|
||||
|
||||
For more information, see the README."
|
||||
beforeGenerate:
|
||||
msg:
|
||||
- " (with %s)"
|
||||
- "Skipping %s resume: %s"
|
||||
- "Generating **%s** resume: **%s**"
|
||||
beforeAnalyze:
|
||||
msg: "Analyzing **%s** resume: **%s**"
|
||||
beforeConvert:
|
||||
msg: "Converting **%s** (**%s**) to **%s** (**%s**)"
|
||||
afterValidate:
|
||||
msg:
|
||||
- "Validating **%s** against the **%s** schema: "
|
||||
- "VALID!"
|
||||
- "INVALID"
|
||||
- "BROKEN"
|
||||
beforePeek:
|
||||
msg:
|
||||
- Peeking at **%s** in **%s**
|
||||
- Peeking at **%s**
|
||||
afterPeek:
|
||||
msg: "The specified key **%s** was not found in **%s**."
|
@ -20,6 +20,8 @@ Output routines for HackMyResume.
|
||||
, FS = require('fs')
|
||||
, EXTEND = require('../utils/extend')
|
||||
, HANDLEBARS = require('handlebars')
|
||||
, YAML = require('yamljs')
|
||||
, printf = require('printf')
|
||||
, pad = require('string-padding');
|
||||
|
||||
|
||||
@ -33,6 +35,7 @@ Output routines for HackMyResume.
|
||||
|
||||
init: function( opts ) {
|
||||
this.opts = EXTEND( true, this.opts || { }, opts );
|
||||
this.msgs = YAML.load(PATH.join( __dirname, 'msg.yml' ));
|
||||
},
|
||||
|
||||
|
||||
@ -60,41 +63,43 @@ Output routines for HackMyResume.
|
||||
break;
|
||||
|
||||
case HME.beforeCreate:
|
||||
L(
|
||||
M2C('Creating new **%s** resume: **%s**', 'green'),
|
||||
evt.fmt, evt.file
|
||||
);
|
||||
L( M2C( this.msgs.beforeCreate.msg, 'green' ), evt.fmt, evt.file );
|
||||
break;
|
||||
|
||||
case HME.beforeRead:
|
||||
L(
|
||||
M2C('Reading resume: **%s**', 'cyan'), evt.file
|
||||
M2C( this.msgs.beforeRead.msg, 'cyan' ), evt.file
|
||||
);
|
||||
break;
|
||||
|
||||
case HME.afterRead:
|
||||
break;
|
||||
|
||||
case HME.beforeTheme:
|
||||
this.opts.debug && L(
|
||||
M2C('Verifying theme: **%s**', 'cyan'), evt.theme.toUpperCase()
|
||||
);
|
||||
this.opts.debug &&
|
||||
L( M2C( this.msgs.beforeTheme.msg, 'cyan'), evt.theme.toUpperCase() );
|
||||
break;
|
||||
|
||||
case HME.afterTheme:
|
||||
this.theme = evt.theme;
|
||||
this.opts.debug && L( M2C('Verifying outputs: ???', 'cyan') );
|
||||
this.opts.debug && L( M2C(this.msgs.beforeTheme.msg, 'cyan'), evt.theme );
|
||||
break;
|
||||
|
||||
case HME.beforeMerge:
|
||||
var msg = '';
|
||||
evt.f.reverse().forEach( function( a, idx ) {
|
||||
msg += ((idx === 0) ? chalk.cyan('Merging ') :
|
||||
chalk.cyan(' onto ')) + chalk.cyan.bold(a.i().file);
|
||||
});
|
||||
L( msg );
|
||||
msg += printf(
|
||||
((idx === 0) ?
|
||||
this.msgs.beforeMerge.msg[0] :
|
||||
this.msgs.beforeMerge.msg[1] ), a.i().file
|
||||
);
|
||||
}, this);
|
||||
L( M2C(msg, 'cyan') );
|
||||
break;
|
||||
|
||||
case HME.afterMerge:
|
||||
var numFormats = Object.keys( this.theme.formats ).length;
|
||||
L( M2C('Applying **%s** theme (%s format%s)', 'yellow'),
|
||||
L( M2C(this.msgs.afterMerge.msg, 'yellow'),
|
||||
this.theme.name.toUpperCase(),
|
||||
numFormats, ( numFormats === 1 ? '' : 's') );
|
||||
break;
|
||||
@ -105,21 +110,12 @@ Output routines for HackMyResume.
|
||||
if( this.opts.tips && (this.theme.message || this.theme.render) ) {
|
||||
var WRAP = require('word-wrap');
|
||||
if( this.theme.message ) {
|
||||
L( WRAP( chalk.gray('The ' + themeName + ' theme says: "') +
|
||||
chalk.white(this.theme.message) + chalk.gray('"'),
|
||||
{ width: this.opts.wrap, indent: '' } ));
|
||||
L( M2C( this.msgs.afterBuild.msg[0], 'cyan' ), themeName );
|
||||
L( M2C( this.theme.message, 'white' ));
|
||||
}
|
||||
else if ( this.theme.render ) {
|
||||
L( M2C( 'The **' + themeName + '** theme says:', 'cyan'));
|
||||
L( WRAP( '"For best results view JSON Resume themes over a ' +
|
||||
'local or remote HTTP connection. For example:',
|
||||
{ width: this.opts.wrap, indent: '' })
|
||||
);
|
||||
L('');
|
||||
L(' npm install http-server -g\r' +
|
||||
' http-server <resume-folder>' );
|
||||
L('');
|
||||
L(chalk.white('For more information, see the README."'));
|
||||
L( M2C( this.msgs.afterBuild.msg[0], 'cyan'), themeName);
|
||||
L( M2C( this.msgs.afterBuild.msg[1], 'white'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -130,28 +126,23 @@ Output routines for HackMyResume.
|
||||
if( evt.fmt === 'pdf' ) {
|
||||
if( this.opts.pdf ) {
|
||||
if( this.opts.pdf !== 'none' ) {
|
||||
suffix = chalk.green(' (with ' + this.opts.pdf + ')');
|
||||
suffix = printf( M2C( this.msgs.beforeGenerate.msg[0], 'green' ), this.opts.pdf );
|
||||
}
|
||||
else {
|
||||
L( chalk.gray('Skipping ') +
|
||||
chalk.white.bold( pad(evt.fmt.toUpperCase(),4,null,pad.RIGHT)) +
|
||||
chalk.gray(' resume') + suffix + chalk.green(': ') +
|
||||
chalk.white( evt.file ));
|
||||
L( M2C( this.msgs.beforeGenerate.msg[1], 'gray' ),
|
||||
evt.fmt.toUpperCase(), evt.file );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
L( chalk.green('Generating ') +
|
||||
chalk.green.bold(
|
||||
pad(evt.fmt.toUpperCase(),4,null,pad.RIGHT)) +
|
||||
chalk.green(' resume') + suffix + chalk.green(': ') +
|
||||
chalk.green.bold( PATH.relative(process.cwd(), evt.file )) );
|
||||
L( M2C( this.msgs.beforeGenerate.msg[2] + suffix, 'green' ),
|
||||
pad(evt.fmt.toUpperCase(),4,null,pad.RIGHT),
|
||||
PATH.relative(process.cwd(), evt.file ));
|
||||
break;
|
||||
|
||||
case HME.beforeAnalyze:
|
||||
L(chalk.cyan('Analyzing ') + chalk.cyan.bold(evt.fmt) +
|
||||
chalk.cyan(' resume: ') + chalk.cyan.bold(evt.file));
|
||||
L( M2C( this.msgs.beforeAnalyze.msg, 'cyan' ), evt.fmt, evt.file);
|
||||
break;
|
||||
|
||||
case HME.afterAnalyze:
|
||||
@ -167,17 +158,20 @@ Output routines for HackMyResume.
|
||||
break;
|
||||
|
||||
case HME.beforeConvert:
|
||||
// TODO: Core should not log
|
||||
L( chalk.green('Converting ') + chalk.green.bold(evt.srcFile) +
|
||||
chalk.green(' (' + evt.srcFmt + ') to ') + chalk.green.bold(evt.dstFile) +
|
||||
chalk.green(' (' + evt.dstFmt + ').'));
|
||||
L( M2C( this.msgs.beforeConvert.msg, 'green' ),
|
||||
evt.srcFile, evt.srcFmt, evt.dstFile, evt.dstFmt
|
||||
);
|
||||
break;
|
||||
|
||||
case HME.afterValidate:
|
||||
var style = evt.isValid ? 'green' : 'yellow';
|
||||
L( chalk.white('Validating ') + chalk.white.bold(evt.file) + chalk.white(' against ') +
|
||||
chalk.white.bold( evt.fmt ).toUpperCase() +
|
||||
chalk.white(' schema: ') + chalk[style].bold(evt.isValid ? 'VALID!' : 'INVALID'));
|
||||
L(
|
||||
M2C( this.msgs.afterValidate.msg[0], 'white' ) +
|
||||
chalk[style].bold( evt.isValid ?
|
||||
this.msgs.afterValidate.msg[1] :
|
||||
this.msgs.afterValidate.msg[2] ),
|
||||
evt.file, evt.fmt
|
||||
);
|
||||
|
||||
if( evt.errors ) {
|
||||
_.each(evt.errors, function(err,idx) {
|
||||
@ -191,16 +185,16 @@ Output routines for HackMyResume.
|
||||
|
||||
case HME.beforePeek:
|
||||
if( evt.target )
|
||||
L(M2C('Peeking at **%s** in **%s**...', 'cyan'), evt.target, evt.file);
|
||||
L(M2C(this.msgs.beforePeek.msg[0], 'cyan'), evt.target, evt.file);
|
||||
else
|
||||
L(M2C('Peeking at **%s**...', 'cyan'), evt.file);
|
||||
L(M2C(this.msgs.beforePeek.msg[1], 'cyan'), evt.file);
|
||||
break;
|
||||
|
||||
case HME.afterPeek:
|
||||
if( evt.target )
|
||||
console.dir( evt.target, { depth: null, colors: true } );
|
||||
else
|
||||
L(M2C('The specified key **%s** was not found in **%s**.', 'yellow'), evt.requested, evt.file);
|
||||
L(M2C( this.msgs.afterPeek.msg, 'yellow'), evt.requested, evt.file);
|
||||
break;
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ Implementation of the 'peek' verb for HackMyResume.
|
||||
if( obj.ex ) {
|
||||
this.err( obj.ex.fluenterror, obj.ex );
|
||||
}
|
||||
var targ = objPath ? __.get( obj.json, objPath ) : obj;
|
||||
var targ = objPath ? __.get( obj.json, objPath ) : obj.json;
|
||||
|
||||
this.stat( HMEVENT.afterPeek, { file: t, requested: objPath, target: targ } );
|
||||
}, this);
|
||||
|
Loading…
Reference in New Issue
Block a user