From edb3e94f2e2c14b6f6cd899f0fe5d8227c7f2dbd Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Tue, 29 Dec 2015 15:56:04 +0100 Subject: workaround for failing fregedoc when ignoring java sources --- src/main/groovy/frege/gradle/tasks/FregeDoc.groovy | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/main/groovy/frege/gradle/tasks') diff --git a/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy b/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy index af4b924..30f62c6 100644 --- a/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy +++ b/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy @@ -1,7 +1,9 @@ package frege.gradle.tasks +import org.apache.commons.io.output.TeeOutputStream import org.gradle.api.Action import org.gradle.api.DefaultTask +import org.gradle.api.GradleException import org.gradle.api.file.FileCollection import org.gradle.api.tasks.Input import org.gradle.api.tasks.Optional @@ -50,6 +52,8 @@ class FregeDoc extends DefaultTask { @TaskAction void fregedoc() { + ByteArrayOutputStream berr = new ByteArrayOutputStream() + def teeOutputStream = new TeeOutputStream(System.err, berr) def result = project.javaexec(new Action() { @Override void execute(JavaExecSpec javaExecSpec) { @@ -65,11 +69,18 @@ class FregeDoc extends DefaultTask { javaExecSpec.workingDir = project.projectDir javaExecSpec.standardInput = System.in javaExecSpec.standardOutput = System.out - javaExecSpec.errorOutput = System.err + javaExecSpec.errorOutput = teeOutputStream javaExecSpec.classpath = this.classpath + + javaExecSpec.ignoreExitValue = true } }) - } + //Workaround for failing with java sources. should result in exit value 0 anyway. + def berrString = berr.toString() + if (result.exitValue !=0 && !berrString.contains("there were errors for")) { + throw new GradleException("Non zero exit value running FregeDoc."); + } + } } -- cgit