diff --git a/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt b/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt index 055a2d08..a0d22bdb 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt @@ -10,7 +10,7 @@ import com.google.common.collect.HashMultimap import java.lang.reflect.InvocationTargetException import java.util.concurrent.* -open class TaskResult2(success: Boolean, val value: T) : TaskResult(success) { +open class TaskResult2(success: Boolean, errorMessage: String?, val value: T) : TaskResult(success, errorMessage) { override fun toString() = toString("TaskResult", "value", value, "success", success) } diff --git a/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt b/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt index 9b7a633c..8f0806ae 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt @@ -281,7 +281,7 @@ public class TaskManager @Inject constructor(val args: Args) { object : BasePluginTask(plugin, name, description, project) { override fun call(): TaskResult2 { val taskResult = task(project) - return TaskResult2(taskResult.success, this) + return TaskResult2(taskResult.success, taskResult.errorMessage, this) } }) runBefore.forEach { runBefore(it, name) } @@ -307,11 +307,13 @@ class TaskWorker(val tasks: List, val dryRun: Boolean) : IWorker() tasks.forEach { val tr = if (dryRun) TaskResult() else it.call() success = success and tr.success + if (tr.errorMessage != null) errorMessages.add(tr.errorMessage) } - return TaskResult2(success, tasks[0]) + return TaskResult2(success, errorMessages.joinToString("\n"), tasks[0]) } // override val timeOut : Long = 10000 diff --git a/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt b/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt index 70a6772e..f0361288 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt @@ -31,7 +31,7 @@ public class DynamicGraphTest { override fun call() : TaskResult2 { log(2, "Running node $n") runNodes.add(n) - return TaskResult2(errorFunction(n), n) + return TaskResult2(errorFunction(n), null, n) } }