From a0b5b0e7ac2b6ed95149af59e836bf273b855a4e Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 11 Sep 2012 11:37:41 -0400 Subject: [PATCH] Fail publishing when artifacts to publish do not exist. --- ivy/IvyActions.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ivy/IvyActions.scala b/ivy/IvyActions.scala index e01cfba90..ca493963e 100644 --- a/ivy/IvyActions.scala +++ b/ivy/IvyActions.scala @@ -251,9 +251,11 @@ object IvyActions } def publish(module: ModuleDescriptor, artifacts: Seq[(IArtifact, File)], resolver: DependencyResolver, overwrite: Boolean): Unit = + { + checkFilesPresent(artifacts) try { resolver.beginPublishTransaction(module.getModuleRevisionId(), overwrite); - for( (artifact, file) <- artifacts) if(file.exists) + for( (artifact, file) <- artifacts) resolver.publish(artifact, file, overwrite) resolver.commitPublishTransaction() } catch { @@ -261,6 +263,12 @@ object IvyActions try { resolver.abortPublishTransaction() } finally { throw e } } - + } + private[this] def checkFilesPresent(artifacts: Seq[(IArtifact, File)]) + { + val missing = artifacts filter { case (a, file) => !file.exists } + if(missing.nonEmpty) + error("Missing files for publishing:\n\t" + missing.map(_._2.getAbsolutePath).mkString("\n\t")) + } } final class ResolveException(val messages: Seq[String], val failed: Seq[ModuleID]) extends RuntimeException(messages.mkString("\n"))