support for packaging sbt 1

This commit is contained in:
Eugene Yokota 2017-04-18 13:28:12 -04:00
parent 70c725fc3b
commit c86f64b451
1 changed files with 26 additions and 4 deletions

View File

@ -178,6 +178,7 @@ def downloadUrlForVersion(v: String) = (v split "[^\\d]" flatMap (i => catching(
case Array(0, 11, 3, _*) => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.11.3-2/sbt-launch.jar"
case Array(0, 11, x, _*) if x >= 3 => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/"+v+"/sbt-launch.jar"
case Array(0, y, _*) if y >= 12 => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/"+v+"/sbt-launch.jar"
case Array(1, _, _*) if v contains ("-20") => "http://repo.scala-sbt.org/scalasbt/maven-snapshots/org/scala-sbt/sbt-launch/"+v+"/sbt-launch.jar"
case Array(1, _, _*) => "http://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/"+v+"/sbt-launch.jar"
case _ => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/"+v+"/sbt-launch.jar"
}
@ -239,14 +240,22 @@ def bintrayRelease(repo: BintrayRepo, pkg: String, version: String, log: Logger)
lazy val scala210 = "2.10.6"
lazy val scala212 = "2.12.1"
lazy val scala212 = "2.12.2"
lazy val scala210Jline = "org.scala-lang" % "jline" % scala210
lazy val jansi = "org.fusesource.jansi" % "jansi" % "1.4"
lazy val jansi = {
if (sbtVersionToRelease startsWith "1.") "org.fusesource.jansi" % "jansi" % "1.4"
else "org.fusesource.jansi" % "jansi" % "1.4"
}
lazy val scala212Jline = "jline" % "jline" % "2.14.1"
lazy val scala212Xml = "org.scala-lang.modules" % "scala-xml_2.12" % "1.0.6"
lazy val scala212Compiler = "org.scala-lang" % "scala-compiler" % scala212
lazy val sbtActual = "org.scala-sbt" % "sbt" % sbtVersionToRelease
lazy val sbt013ExtraDeps = {
if (sbtVersionToRelease startsWith "0.13.") Seq(scala210Jline)
else Seq()
}
def downloadUrl(uri: URI, out: File): Unit =
{
import dispatch.classic._
@ -262,11 +271,24 @@ lazy val dist = (project in file("dist"))
.enablePlugins(ExportRepoPlugin)
.settings(
name := "dist",
scalaVersion := scala210,
libraryDependencies ++= Seq(sbtActual, scala210Jline, jansi, scala212Compiler, scala212Jline, scala212Xml),
scalaVersion := {
if (sbtVersionToRelease startsWith "0.13.") scala210
else scala212
},
libraryDependencies ++= Seq(sbtActual, jansi, scala212Compiler, scala212Jline, scala212Xml) ++ sbt013ExtraDeps,
exportRepo := {
val old = exportRepo.value
sbtVersionToRelease match {
case v if v.startsWith("1.0.") =>
val zincBase = exportRepoDirectory.value / "org.scala-sbt" / "zinc_2.12"
val zincVersion = (zincBase * DirectoryFilter).get.head.getName
val utilBase = exportRepoDirectory.value / "org.scala-sbt" / "util-logging_2.12"
val utilVersion = (utilBase * DirectoryFilter).get.head.getName
val outbase = exportRepoDirectory.value / "org" / "scala-sbt" / "compiler-interface" / zincVersion
val uribase = s"https://oss.sonatype.org/content/repositories/public/org/scala-sbt/compiler-interface/$zincVersion/"
downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}.jar"), outbase / s"compiler-interface-${zincVersion}.jar")
downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}-sources.jar"), outbase / s"compiler-interface-${zincVersion}-sources.jar")
downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}.pom"), outbase / s"compiler-interface-${zincVersion}.pom")
case v if v.startsWith("0.13.") =>
val outbase = exportRepoDirectory.value / "org.scala-sbt" / "compiler-interface" / v
val uribase = s"https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/$v/"