From c8f86f48fcfedad6ca6c45718c0b95f02efd11f4 Mon Sep 17 00:00:00 2001 From: dmharrah Date: Fri, 25 Sep 2009 02:13:51 +0000 Subject: [PATCH] Support for uniquely referencing a nightly Scala version in launcher git-svn-id: https://simple-build-tool.googlecode.com/svn/trunk@1040 d89573ee-9141-11dd-94d4-bdf5e562f29c --- boot/src/main/scala/Update.scala | 35 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/boot/src/main/scala/Update.scala b/boot/src/main/scala/Update.scala index e3fef08c5..6dab2d711 100644 --- a/boot/src/main/scala/Update.scala +++ b/boot/src/main/scala/Update.scala @@ -211,23 +211,6 @@ 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.*/ @@ -238,6 +221,24 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion resolver.setM2compatible(true) resolver } + private val SnapshotPattern = """(\d+).(\d+).(\d+)-(\d{8})\.(\d{6})-(\d+|\+)""".r.pattern + private def scalaSnapshots(scalaVersion: String) = + { + val m = SnapshotPattern.matcher(scalaVersion) + if(m.matches) + { + val base = Seq(1,2,3).map(m.group).mkString(".") + val pattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/" + base + "-SNAPSHOT/[artifact]-[revision].[ext]" + + val resolver = new URLResolver + resolver.setName("Scala Tools Snapshots") + resolver.setM2compatible(true) + resolver.addArtifactPattern(pattern) + resolver + } + else + mavenResolver("Scala-Tools Maven2 Snapshots Repository", "http://scala-tools.org/repo-snapshots") + } private def localResolver(ivyUserDirectory: String) = { val localIvyRoot = ivyUserDirectory + "/local"