mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-12-23 05:37:23 +00:00
Improve error handling: PDFs.
This commit is contained in:
parent
0246a5da19
commit
28c703daf7
@ -73,7 +73,8 @@ Error-handling routines for HackMyResume.
|
||||
|
||||
|
||||
function get_error_msg( ex ) {
|
||||
var msg = '', withStack = false;
|
||||
|
||||
var msg = '', withStack = false, isError = false;
|
||||
switch( ex.fluenterror ) {
|
||||
|
||||
case HACKMYSTATUS.themeNotFound:
|
||||
@ -137,6 +138,10 @@ Error-handling routines for HackMyResume.
|
||||
});
|
||||
break;
|
||||
|
||||
case HACKMYSTATUS.notOnPath:
|
||||
msg = formatError( ex.engine + " wasn't found on your system path or is inaccessible. PDF not generated." );
|
||||
break;
|
||||
|
||||
}
|
||||
return {
|
||||
msg: msg,
|
||||
@ -144,6 +149,9 @@ Error-handling routines for HackMyResume.
|
||||
};
|
||||
}
|
||||
|
||||
function formatError( msg ) {
|
||||
return chalk.red.bold( 'ERROR: ' + msg );
|
||||
}
|
||||
|
||||
|
||||
}());
|
||||
|
@ -19,7 +19,8 @@ Status codes for HackMyResume.
|
||||
pdfgeneration: 9,
|
||||
missingPackageJSON: 10,
|
||||
invalid: 11,
|
||||
invalidTarget: 12
|
||||
invalidTarget: 12,
|
||||
notOnPath: 13
|
||||
};
|
||||
|
||||
}());
|
||||
|
@ -37,14 +37,16 @@ Definition of the HtmlPdfCLIGenerator class.
|
||||
*/
|
||||
onBeforeSave: function( info ) {
|
||||
try {
|
||||
engines[ info.opts.pdf || 'wkhtmltopdf' ]
|
||||
.call( this, info.mk, info.outputFile );
|
||||
var safe_eng = info.opts.pdf || 'wkhtmltopdf';
|
||||
engines[ safe_eng ].call( this, info.mk, info.outputFile );
|
||||
return null; // halt further processing
|
||||
}
|
||||
catch(ex) {
|
||||
// { [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', ... }
|
||||
// { [Error: ENOENT] }
|
||||
throw { fluenterror: this.codes.pdfGeneration, inner: ex };
|
||||
throw ( ex.inner && ex.inner.code === 'ENOENT' ) ?
|
||||
{ fluenterror: this.codes.notOnPath, engine: ex.cmd } :
|
||||
{ fluenterror: this.codes.pdfGeneration, inner: ex.inner };
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,10 +67,16 @@ Definition of the HtmlPdfCLIGenerator class.
|
||||
var tempFile = fOut.replace(/\.pdf$/i, '.pdf.html');
|
||||
FS.writeFileSync( tempFile, markup, 'utf8' );
|
||||
|
||||
var spawn = require('child_process').spawn;
|
||||
var child = spawn('wkhtmltopdf', [
|
||||
var spawn = require('child_process').spawnSync;
|
||||
var info = spawn('wkhtmltopdf', [
|
||||
tempFile, fOut
|
||||
]);
|
||||
if( info.error ) {
|
||||
throw {
|
||||
cmd: 'wkhtmltopdf',
|
||||
inner: info.error
|
||||
};
|
||||
}
|
||||
|
||||
// child.stdout.on('data', function(chunk) {
|
||||
// // output will be here in chunks
|
||||
@ -95,8 +103,14 @@ Definition of the HtmlPdfCLIGenerator class.
|
||||
var sourcePath = SLASH( PATH.relative( process.cwd(), tempFile) );
|
||||
var destPath = SLASH( PATH.relative( process.cwd(), fOut) );
|
||||
|
||||
var spawn = require('child_process').spawn;
|
||||
var child = spawn('phantomjs', [ scriptPath, sourcePath, destPath ]);
|
||||
var spawn = require('child_process').spawnSync;
|
||||
var info = spawn('1phantomjs', [ scriptPath, sourcePath, destPath ]);
|
||||
if( info.error ) {
|
||||
throw {
|
||||
cmd: 'phantomjs',
|
||||
inner: info.error
|
||||
};
|
||||
}
|
||||
|
||||
// child.stdout.on('data', function(chunk) {
|
||||
// // output will be here in chunks
|
||||
|
Loading…
Reference in New Issue
Block a user