mirror of
				https://github.com/JuanCanham/HackMyResume.git
				synced 2025-10-30 20:57:26 +00:00 
			
		
		
		
	Detect bad option files supplied via --options.
This commit is contained in:
		
							
								
								
									
										24
									
								
								dist/cli/error.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/cli/error.js
									
									
									
									
										vendored
									
									
								
							| @@ -234,6 +234,30 @@ Error-handling routines for HackMyResume. | ||||
|       case HMSTATUS.validateError: | ||||
|         msg = printf(M2C(this.msgs.validateError.msg), ex.inner.toString()); | ||||
|         etype = 'error'; | ||||
|         break; | ||||
|       case HMSTATUS.invalidOptionsFile: | ||||
|         msg = M2C(this.msgs.invalidOptionsFile.msg[0]); | ||||
|         if (SyntaxErrorEx.is(ex.inner)) { | ||||
|           console.error(printf(M2C(this.msgs.readError.msg, 'red'), ex.file)); | ||||
|           se = new SyntaxErrorEx(ex, ex.raw); | ||||
|           if ((se.line != null) && (se.col != null)) { | ||||
|             msg += printf(M2C(this.msgs.parseError.msg[0], 'red'), se.line, se.col); | ||||
|           } else if (se.line != null) { | ||||
|             msg += printf(M2C(this.msgs.parseError.msg[1], 'red'), se.line); | ||||
|           } else { | ||||
|             msg += M2C(this.msgs.parseError.msg[2], 'red'); | ||||
|           } | ||||
|         } else if (ex.inner && (ex.inner.line != null) && (ex.inner.col != null)) { | ||||
|           msg += printf(M2C(this.msgs.parseError.msg[0], 'red'), ex.inner.line, ex.inner.col); | ||||
|         } else { | ||||
|           msg += ex; | ||||
|         } | ||||
|         msg += this.msgs.invalidOptionsFile.msg[1]; | ||||
|         etype = 'error'; | ||||
|         break; | ||||
|       case HMSTATUS.optionsFileNotFound: | ||||
|         msg = M2C(this.msgs.optionsFileNotFound.msg); | ||||
|         etype = 'error'; | ||||
|     } | ||||
|     return { | ||||
|       msg: msg, | ||||
|   | ||||
							
								
								
									
										22
									
								
								dist/cli/main.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								dist/cli/main.js
									
									
									
									
										vendored
									
									
								
							| @@ -62,6 +62,9 @@ Definition of the `main` function. | ||||
|   main = module.exports = function(rawArgs, exitCallback) { | ||||
|     var args, initInfo, program; | ||||
|     initInfo = initialize(rawArgs, exitCallback); | ||||
|     if (initInfo === null) { | ||||
|       return; | ||||
|     } | ||||
|     args = initInfo.args; | ||||
|     program = new Command('hackmyresume').version(PKG.version).description(chalk.yellow.bold('*** HackMyResume ***')).option('-s --silent', 'Run in silent mode').option('--no-color', 'Disable colors').option('--color', 'Enable colors').option('-d --debug', 'Enable diagnostics', false).option('-a --assert', 'Treat warnings as errors', false).option('-v --version', 'Show the version').allowUnknownOption(); | ||||
|     program.jsonArgs = initInfo.options; | ||||
| @@ -104,6 +107,23 @@ Definition of the `main` function. | ||||
|     var o; | ||||
|     _exitCallback = exitCallback || process.exit; | ||||
|     o = initOptions(ar); | ||||
|     if (o.ex) { | ||||
|       _err.init(false, true, false); | ||||
|       if (o.ex.op === 'parse') { | ||||
|         _err.err({ | ||||
|           fluenterror: o.ex.op === 'parse' ? HMSTATUS.invalidOptionsFile : HMSTATUS.optionsFileNotFound, | ||||
|           inner: o.ex.inner, | ||||
|           quit: true | ||||
|         }); | ||||
|       } else { | ||||
|         _err.err({ | ||||
|           fluenterror: HMSTATUS.optionsFileNotFound, | ||||
|           inner: o.ex.inner, | ||||
|           quit: true | ||||
|         }); | ||||
|       } | ||||
|       return null; | ||||
|     } | ||||
|     o.silent || logMsg(_title); | ||||
|     if (o.debug) { | ||||
|       _out.log(chalk.cyan('The -d or --debug switch was specified. DEBUG mode engaged.')); | ||||
| @@ -173,6 +193,8 @@ Definition of the `main` function. | ||||
|             inf = safeLoadJSON(optStr); | ||||
|             if (!inf.ex) { | ||||
|               oJSON = inf.json; | ||||
|             } else { | ||||
|               return inf; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|   | ||||
							
								
								
									
										6
									
								
								dist/cli/msg.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/cli/msg.yml
									
									
									
									
										vendored
									
									
								
							| @@ -109,3 +109,9 @@ errors: | ||||
|     msg: Exiting with status code **%s**. | ||||
|   validateError: | ||||
|     msg: "An error occurred during validation:\n%s" | ||||
|   invalidOptionsFile: | ||||
|     msg: | ||||
|       - "The specified options file is invalid:\n" | ||||
|       - "\nMake sure the options file contains valid JSON." | ||||
|   optionsFileNotFound: | ||||
|     msg: "The specified options file is missing or inaccessible." | ||||
|   | ||||
		Reference in New Issue
	
	Block a user