From: Felix Dörre Date: Sat, 3 Sep 2016 13:05:30 +0000 (+0200) Subject: add: fail build when translation extraction has a problem. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=0877a9096559320758774cf09d3b1de779150f11 add: fail build when translation extraction has a problem. Change-Id: Ibeeb1f674ce09a131cac21fa6a5df3516b586e60 --- diff --git a/build.xml b/build.xml index 6816b7d8..b6faa09d 100644 --- a/build.xml +++ b/build.xml @@ -125,7 +125,7 @@ - + diff --git a/util-testing/org/cacert/gigi/localisation/TranslationCollectingVisitor.java b/util-testing/org/cacert/gigi/localisation/TranslationCollectingVisitor.java index 6b0fe95c..3f8b858d 100644 --- a/util-testing/org/cacert/gigi/localisation/TranslationCollectingVisitor.java +++ b/util-testing/org/cacert/gigi/localisation/TranslationCollectingVisitor.java @@ -34,6 +34,12 @@ public final class TranslationCollectingVisitor extends ASTVisitor { Stack 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) { diff --git a/util-testing/org/cacert/gigi/localisation/TranslationCollector.java b/util-testing/org/cacert/gigi/localisation/TranslationCollector.java index f93091a7..2592f3a7 100644 --- a/util-testing/org/cacert/gigi/localisation/TranslationCollector.java +++ b/util-testing/org/cacert/gigi/localisation/TranslationCollector.java @@ -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 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 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 strings) throws IOException {