/* sbt -- Simple Build Tool * Copyright 2011 Mark Harrah */ package sbt import java.io.File import java.net.URI import BuildLoader.ResolveInfo import Def.{ScopedKey, Setting} object RetrieveUnit { def apply(info: ResolveInfo): Option[() => File] = { info.uri match { case Scheme("svn") | Scheme("svn+ssh") => Resolvers.subversion(info) case Scheme("hg") => Resolvers.mercurial(info) case Scheme("git") => Resolvers.git(info) case Path(path) if path.endsWith(".git") => Resolvers.git(info) case Scheme("http") | Scheme("https") | Scheme("ftp") => Resolvers.remote(info) case Scheme("file") => Resolvers.local(info) case _ => None } } object Scheme { def unapply(uri: URI) = Option(uri.getScheme) } object Path { import RichURI.fromURI def unapply(uri: URI) = Option(uri.withoutMarkerScheme.getPath) } }