From da7d03ed4828bbe3238a692ecf03812adc40216e Mon Sep 17 00:00:00 2001 From: Lars Hupel Date: Tue, 14 Mar 2017 16:20:20 +0100 Subject: [PATCH 1/3] avoid deleting the target of `makeJar` if it's not a file --- main-actions/src/main/scala/sbt/Package.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/main-actions/src/main/scala/sbt/Package.scala b/main-actions/src/main/scala/sbt/Package.scala index d1ca287b2..6afe000ee 100644 --- a/main-actions/src/main/scala/sbt/Package.scala +++ b/main-actions/src/main/scala/sbt/Package.scala @@ -94,8 +94,13 @@ object Package { ManifestAttributes((attribKeys zip attribVals) ++ { homepage map (h => (IMPLEMENTATION_URL, h.toString)) }: _*) } def makeJar(sources: Seq[(File, String)], jar: File, manifest: Manifest, log: Logger): Unit = { - log.info("Packaging " + jar.getAbsolutePath + " ...") - IO.delete(jar) + val path = jar.getAbsolutePath + log.info("Packaging " + path + " ...") + if (jar.exists) + if (jar.isFile) + IO.delete(jar) + else + sys.error(path + " exists, but is not a regular file") log.debug(sourcesDebugString(sources)) IO.jar(sources, jar, manifest) log.info("Done packaging.") From b20b8a0b1851296502b96ed476f6a69ee647a339 Mon Sep 17 00:00:00 2001 From: Lars Hupel Date: Tue, 14 Mar 2017 16:34:45 +0100 Subject: [PATCH 2/3] test case for package target check --- sbt/src/sbt-test/actions/package-delete-target/build.sbt | 1 + sbt/src/sbt-test/actions/package-delete-target/test | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 sbt/src/sbt-test/actions/package-delete-target/build.sbt create mode 100644 sbt/src/sbt-test/actions/package-delete-target/test diff --git a/sbt/src/sbt-test/actions/package-delete-target/build.sbt b/sbt/src/sbt-test/actions/package-delete-target/build.sbt new file mode 100644 index 000000000..8e17fd26b --- /dev/null +++ b/sbt/src/sbt-test/actions/package-delete-target/build.sbt @@ -0,0 +1 @@ +name := "delete-target" diff --git a/sbt/src/sbt-test/actions/package-delete-target/test b/sbt/src/sbt-test/actions/package-delete-target/test new file mode 100644 index 000000000..6ba746f03 --- /dev/null +++ b/sbt/src/sbt-test/actions/package-delete-target/test @@ -0,0 +1,4 @@ +$ mkdir target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar +$ touch target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar/hello +-> package +$ exists target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar/hello From f5cf8ef4a8cda48e5af9ceb990ba105d8127b3c8 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 4 Apr 2017 16:32:02 -0400 Subject: [PATCH 3/3] Adjust scripted test to sbt 1 --- sbt/src/sbt-test/actions/package-delete-target/build.sbt | 6 +++++- sbt/src/sbt-test/actions/package-delete-target/test | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sbt/src/sbt-test/actions/package-delete-target/build.sbt b/sbt/src/sbt-test/actions/package-delete-target/build.sbt index 8e17fd26b..521d0c6da 100644 --- a/sbt/src/sbt-test/actions/package-delete-target/build.sbt +++ b/sbt/src/sbt-test/actions/package-delete-target/build.sbt @@ -1 +1,5 @@ -name := "delete-target" +lazy val root = (project in file(".")) + .settings( + name := "delete-target", + scalaVersion := "2.12.1" + ) diff --git a/sbt/src/sbt-test/actions/package-delete-target/test b/sbt/src/sbt-test/actions/package-delete-target/test index 6ba746f03..a04dd25bd 100644 --- a/sbt/src/sbt-test/actions/package-delete-target/test +++ b/sbt/src/sbt-test/actions/package-delete-target/test @@ -1,4 +1,4 @@ -$ mkdir target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar -$ touch target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar/hello +$ mkdir target/scala-2.12/delete-target_2.12-0.1-SNAPSHOT.jar +$ touch target/scala-2.12/delete-target_2.12-0.1-SNAPSHOT.jar/hello -> package -$ exists target/scala-2.10/delete-target_2.10-0.1-SNAPSHOT.jar/hello +$ exists target/scala-2.12/delete-target_2.12-0.1-SNAPSHOT.jar/hello