From f5a18259c1a2f6816770267082e1313a14924eae Mon Sep 17 00:00:00 2001 From: dmharrah Date: Wed, 23 Sep 2009 23:33:01 +0000 Subject: [PATCH] Allow specific 2.8 snapshot version to be used for launcher git-svn-id: https://simple-build-tool.googlecode.com/svn/trunk@1035 d89573ee-9141-11dd-94d4-bdf5e562f29c --- boot/src/main/scala/Update.scala | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/boot/src/main/scala/Update.scala b/boot/src/main/scala/Update.scala index b63d782ef..e3fef08c5 100644 --- a/boot/src/main/scala/Update.scala +++ b/boot/src/main/scala/Update.scala @@ -47,7 +47,7 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion bootDirectory.mkdirs new PrintWriter(new FileWriter(logFile)) } - + /** The main entry point of this class for use by the Update module. It runs Ivy */ private def update() { @@ -179,7 +179,7 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion newDefault.add(sbtResolver(scalaVersion)) case UpdateScala => newDefault.add(mavenResolver("Scala-Tools Maven2 Repository", "http://scala-tools.org/repo-releases")) - newDefault.add(mavenResolver("Scala-Tools Maven2 Snapshots Repository", "http://scala-tools.org/repo-snapshots")) + newDefault.add(scalaSnapshots(scalaVersion)) } onDefaultRepositoryCacheManager(settings)(_.setUseOrigin(true)) settings.addResolver(newDefault) @@ -211,6 +211,23 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion resolver.setRoot(root) resolver } + private def scalaSnapshots(scalaVersion: String) = + { + val parts = """(\d+)\.(\d+)\.(\d+)-(.+)""".r.pattern.matcher(scalaVersion) + if(parts.matches && parts.group(4) != "SNAPSHOT") + snapshots( Seq(parts.group(1), parts.group(2), parts.group(3)).mkString(".") ) + else + mavenResolver("Scala-Tools Maven2 Snapshots Repository", "http://scala-tools.org/repo-snapshots") + } + private def snapshots(baseVersion: String) = + { + val resolver = new URLResolver + resolver.setName("Scala-Tools Maven2 Snapshots Repository") + val base = "http://scala-tools.org/repo-snapshots/" + resolver.setM2compatible(true) + resolver.addArtifactPattern(base + "[organisation]/[module]/" + baseVersion + "-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]") + resolver + } /** Creates a resolver for Maven Central.*/ private def mavenMainResolver = defaultMavenResolver("Maven Central") /** Creates a maven-style resolver with the default root.*/