[pve-devel] [PATCH jslint 2/2] do not exit on first error

Dominik Csapak d.csapak at proxmox.com
Tue May 22 14:01:46 CEST 2018


instead collect all errors and show them all at once

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 rhino.js | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/rhino.js b/rhino.js
index 75c6e40..91ad003 100644
--- a/rhino.js
+++ b/rhino.js
@@ -1,5 +1,7 @@
 (function (a) {
-    var e, i, input, filename, defaults;
+    var e, i, j, input, filename, defaults;
+    var error = 0;
+    var errorstring = '';
     if (!a[0]) {
         print("Usage: jslint.js file.js ...");
         quit(1);
@@ -29,24 +31,32 @@
 	input = readFile( filename );
 	if (!input) {
             print("jslint: Couldn't open file '" + filename + "'.");
-            quit(1);
+            if (error < 1) {
+		error = 1;
+	    }
+	    continue;
 	}
 
 	if (!JSLINT(input, defaults)) {
-            for (i = 0; i < JSLINT.errors.length; i += 1) {
-		e = JSLINT.errors[i];
+            for (j = 0; j < JSLINT.errors.length; j += 1) {
+		e = JSLINT.errors[j];
 		if (e) {
-                    print('[' + filename + '] Lint at line ' + e.line + ' character ' +
+                    errorstring += ('[' + filename + '] Lint at line ' + e.line + ' character ' +
                           e.character + ': ' + e.reason);
-                    print((e.evidence || '').
+		    errorstring += "\n";
+                    errorstring += ((e.evidence || '').
                           replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"));
-                    print('');
+		    errorstring += "\n\n";
 		}
             }
-            quit(2);
+            if (error < 2) {
+		error = 2;
+		continue;
+	    }
 	} else {
             print("jslint: " + filename + " OK");
 	}
     }
-    quit();
+    print(errorstring);
+    quit(error);
 }(arguments));
-- 
2.11.0




More information about the pve-devel mailing list