]> WPIA git - gigi.git/blobdiff - util-testing/org/cacert/gigi/localisation/TranslationCollector.java
Add a hint what the "Request reping" is used for on the email page
[gigi.git] / util-testing / org / cacert / gigi / localisation / TranslationCollector.java
index f93091a7f157537f1f6407f275ca3c582e71652a..9b4f2a9fee3ceb21e5d910d486f65d7bbef7bc19 100644 (file)
@@ -79,6 +79,8 @@ public class TranslationCollector {
 
     public final File base;
 
+    private boolean hadErrors = false;
+
     public TranslationCollector(File base, File conf) {
         this.base = base;
         taint = new LinkedList<>();
@@ -91,10 +93,9 @@ public class TranslationCollector {
         scanTemplates();
         scanCode(taint);
 
-        System.out.println("Total Translatable Strings: " + translations.size());
+        System.err.println("Total Translatable Strings: " + translations.size());
         TreeSet<TranslationEntry> trs = new TreeSet<>(translations.values());
         writePOFile(out, trs);
-
     }
 
     public void add(String text, String line) {
@@ -110,7 +111,7 @@ public class TranslationCollector {
     }
 
     private void scanCode(LinkedList<TaintSource> taint) throws Error {
-        PrintWriter out = new PrintWriter(System.out);
+        PrintWriter out = new PrintWriter(System.err);
         Main m = new Main(out, out, false, null, null);
         File[] fs = recurse(new File(new File(new File(base, "src"), "org"), "cacert"), new LinkedList<File>(), ".java").toArray(new File[0]);
         String[] t = new String[fs.length + 3];
@@ -178,12 +179,12 @@ public class TranslationCollector {
                         err++;
                     }
                     if (OUTPUT_WARNINGS || problem.isError()) {
-                        System.out.println(problem);
+                        System.err.println(problem);
                         StringBuilder prob = new StringBuilder();
                         prob.append(parsedUnit.compilationResult.fileName);
                         prob.append(":");
                         prob.append(problem.getSourceLineNumber());
-                        System.out.println(prob.toString());
+                        System.err.println(prob.toString());
                     }
                 }
                 if (err > 0) {
@@ -192,13 +193,14 @@ public class TranslationCollector {
             }
 
             if (parsedUnit.types == null) {
-                System.out.println("No types");
+                System.err.println("No types");
 
             } else {
                 TranslationCollectingVisitor v = new TranslationCollectingVisitor(parsedUnit, taint.toArray(new TaintSource[taint.size()]), this);
                 for (TypeDeclaration td : parsedUnit.types) {
                     td.traverse(v, td.scope);
                 }
+                hadErrors |= v.hadErrors();
             }
             parsedUnits[i] = parsedUnit;
         }
@@ -223,7 +225,13 @@ public class TranslationCollector {
     private LinkedList<TaintSource> taint;
 
     public static void main(String[] args) throws IOException {
-        new TranslationCollector(new File(args[1]), new File(args[0])).run(new File(args[2]));
+        TranslationCollector tc = new TranslationCollector(new File(args[1]), new File(args[0]));
+        tc.run(new File(args[2]));
+        if (tc.hadErrors) {
+            System.exit(1);
+        } else {
+            System.exit(0);
+        }
     }
 
     public static void writePOFile(File target, Collection<TranslationEntry> strings) throws IOException {