]> WPIA git - gigi.git/commitdiff
add: fail build when translation extraction has a problem.
authorFelix Dörre <felix@dogcraft.de>
Sat, 3 Sep 2016 13:05:30 +0000 (15:05 +0200)
committerFelix Dörre <felix@dogcraft.de>
Tue, 6 Sep 2016 21:14:27 +0000 (23:14 +0200)
Change-Id: Ibeeb1f674ce09a131cac21fa6a5df3516b586e60

build.xml
util-testing/org/cacert/gigi/localisation/TranslationCollectingVisitor.java
util-testing/org/cacert/gigi/localisation/TranslationCollector.java

index 6816b7d81816a35392dfa0dfc285b180f6d9e670..b6faa09d9814df43077891beb660e4a300bb3521 100644 (file)
--- a/build.xml
+++ b/build.xml
                        <classpath refid="cacert-gigi.classpath" />
                        <classpath refid="cacert-gigi.test.classpath.jdt" />
                </javac>
-               <java classname="org.cacert.gigi.localisation.TranslationCollector">
+               <java classname="org.cacert.gigi.localisation.TranslationCollector" failonerror="true">
                        <arg value="util-testing/org/cacert/gigi/localisation/conf.txt"/>
                        <arg value="."/>
                        <arg value="messages.po"/>
index 6b0fe95cf4fd27410a76e2c27dfab0d15febf1f3..3f8b858d61c275716659b8079f3661cbb8693577 100644 (file)
@@ -34,6 +34,12 @@ public final class TranslationCollectingVisitor extends ASTVisitor {
 
     Stack<QualifiedAllocationExpression> anonymousConstructorCall = new Stack<>();
 
+    private boolean hadErrors = false;
+
+    public boolean hadErrors() {
+        return hadErrors;
+    }
+
     public TranslationCollectingVisitor(CompilationUnitDeclaration unit, TaintSource[] target, TranslationCollector c) {
         this.unit = unit;
         ts = target;
@@ -188,6 +194,7 @@ public final class TranslationCollectingVisitor extends ASTVisitor {
         System.out.println("Cannot Handle: " + e + " in " + (call == null ? "constructor" : call.sourceStart) + " => " + caller);
         System.out.println(e.getClass());
         System.out.println("To ignore: " + (b == null ? "don't know" : b.toConfLine()));
+        hadErrors = true;
     }
 
     private void testEnum(Expression e, MethodBinding binding) {
index f93091a7f157537f1f6407f275ca3c582e71652a..2592f3a733d1cffbf037ef0513175117c960f292 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<>();
@@ -94,7 +96,6 @@ public class TranslationCollector {
         System.out.println("Total Translatable Strings: " + translations.size());
         TreeSet<TranslationEntry> trs = new TreeSet<>(translations.values());
         writePOFile(out, trs);
-
     }
 
     public void add(String text, String line) {
@@ -199,6 +200,7 @@ public class TranslationCollector {
                 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 {