aboutsummaryrefslogtreecommitdiff
path: root/stage2
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 00:45:50 +0300
committerChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 10:27:23 +0300
commit323dd568b61a49c0ac17dbf3ad50098e82c2989b (patch)
treef67f5f259ff73f4c3a516310bc1d8e342eb56e98 /stage2
parentaf207e272664720b77b376214292b0c5716fc20b (diff)
downloadcbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.gz
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.bz2
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.zip
Convenience factory methods for Resolvers
Diffstat (limited to 'stage2')
-rw-r--r--stage2/BasicBuild.scala7
-rw-r--r--stage2/SbtDependencyDsl.scala28
-rw-r--r--stage2/Scaffold.scala37
-rw-r--r--stage2/ToolsTasks.scala23
4 files changed, 43 insertions, 52 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index fb5e652..4ae4cd1 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -47,12 +47,11 @@ class BasicBuild(val context: Context) extends DependencyImplementation with Bui
def copy(context: Context): BuildInterface = lib.copy(this.getClass, context).asInstanceOf[BuildInterface]
def zincVersion = "0.3.9"
- def dependencies: Seq[Dependency] = Seq(
+ def dependencies: Seq[Dependency] =
// FIXME: this should probably be removed
- MavenResolver(context.cbtHasChanged, context.paths.mavenCache, MavenResolver.central).resolve(
+ Resolver( mavenCentral ).bind(
"org.scala-lang" % "scala-library" % scalaVersion
)
- )
// ========== paths ==========
final private val defaultSourceDirectory = projectDirectory ++ "/src"
@@ -92,6 +91,8 @@ class BasicBuild(val context: Context) extends DependencyImplementation with Bui
}
assertSourceDirectories()
+ def Resolver( urls: URL* ) = MavenResolver( context.cbtHasChanged, context.paths.mavenCache, urls: _* )
+
def ScalaDependency(
groupId: String, artifactId: String, version: String, classifier: Classifier = Classifier.none,
scalaVersion: String = scalaMajorVersion
diff --git a/stage2/SbtDependencyDsl.scala b/stage2/SbtDependencyDsl.scala
index d8c0786..4c95308 100644
--- a/stage2/SbtDependencyDsl.scala
+++ b/stage2/SbtDependencyDsl.scala
@@ -12,32 +12,4 @@ trait SbtDependencyDsl{ self: BasicBuild =>
def %%(artifactId: String) = new DependencyBuilder2( groupId, artifactId, Some(scalaMajorVersion) )
def %(artifactId: String) = new DependencyBuilder2( groupId, artifactId, None )
}
- implicit class DependencyBuilder3(d: MavenDependency){
- def %(classifier: String): MavenDependency = d//.copy(classifier = Classifier(Some(classifier)))
- }
-
- /*
- /** SBT-like dependency builder DSL for syntax compatibility */
- implicit class DependencyBuilder0(repository: Maven){
- def %(groupId: String) = new DependencyBuilder1b(repository, groupId)
- }
- implicit class DependencyBuilder1a(groupId: String){
- def %%(artifactId: String) = new DependencyBuilder2( Maven.central, groupId, artifactId, Some(scalaMajorVersion) )
- def %(artifactId: String) = new DependencyBuilder2( Maven.central, groupId, artifactId, None )
- }
- class DependencyBuilder1b(repository: Maven, groupId: String){
- def %%(artifactId: String) = new DependencyBuilder2( repository, groupId, artifactId, Some(scalaMajorVersion) )
- def %(artifactId: String) = new DependencyBuilder2( repository, groupId, artifactId, None )
- }
- class DependencyBuilder2( repository: Maven, groupId: String, artifactId: String, scalaMajorVersion: Option[String] ){
- def %(version: String) = scalaMajorVersion.map(
- v => repository(groupId, artifactId, version, scalaMajorVersion = v)
- ).getOrElse(
- repository.java(groupId, artifactId, version)
- )
- }
- implicit class DependencyBuilder3(d: MavenDependency){
- def %(classifier: String) = d.copy(classifier = Classifier(Some(classifier)))
- }
- */
} \ No newline at end of file
diff --git a/stage2/Scaffold.scala b/stage2/Scaffold.scala
index 407fee1..6c66b04 100644
--- a/stage2/Scaffold.scala
+++ b/stage2/Scaffold.scala
@@ -13,7 +13,7 @@ trait Scaffold{
println( GREEN ++ "Created " ++ fileName ++ RESET )
}
- def scaffoldBasicBuild(
+ def createBasicBuild(
projectDirectory: File
): Unit = {
createFile(projectDirectory, "build/build.scala", s"""import cbt._
@@ -23,11 +23,17 @@ import scala.collection.immutable.Seq
class Build(context: Context) extends BasicBuild(context){
override def dependencies = { // don't forget super.dependencies here
- super.dependencies :+ MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
- MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
- MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r"),
- MavenDependency("com.typesafe.zinc","zinc","0.3.9"),
- ScalaDependency("org.scala-lang.modules","scala-xml","1.0.5")
+ super.dependencies ++ Resolver( mavenCentral ).bind(
+ /*
+ // Scala dependency automatically adding Scala major version to artifact id
+ ScalaDependency("com.lihaoyi", "ammonite-ops", "0.5.5")
+ // SBT-style Scala dependency
+ "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
+ // Java dependency directly corresponding to maven artifact id
+ MavenDependency("com.lihaoyi", "ammonite-ops_2.11", "0.5.5")
+ // SBT-style Java dependency
+ "com.lihaoyi" % "ammonite-ops_2.11" % "0.5.5"
+ */
)
}
}
@@ -36,7 +42,7 @@ class Build(context: Context) extends BasicBuild(context){
}
- def scaffoldBuildBuild(
+ def createBuildBuild(
projectDirectory: File
): Unit = {
createFile(projectDirectory, "build/build/build.scala", s"""import cbt._
@@ -45,9 +51,20 @@ import java.io.File
import scala.collection.immutable.Seq
class Build(context: Context) extends BuildBuild(context){
- override def dependencies = super.dependencies ++ Seq(
- // , "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
- )
+ override def dependencies = { // don't forget super.dependencies here
+ super.dependencies ++ Resolver( mavenCentral ).bind(
+ /*
+ // Scala dependency automatically adding Scala major version to artifact id
+ ScalaDependency("com.lihaoyi", "ammonite-ops", "0.5.5")
+ // SBT-style Scala dependency
+ "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
+ // Java dependency directly corresponding to maven artifact id
+ MavenDependency("com.lihaoyi", "ammonite-ops_2.11", "0.5.5")
+ // SBT-style Java dependency
+ "com.lihaoyi" % "ammonite-ops_2.11" % "0.5.5"
+ */
+ )
+ }
}
"""
)
diff --git a/stage2/ToolsTasks.scala b/stage2/ToolsTasks.scala
index 46f1336..5afbac0 100644
--- a/stage2/ToolsTasks.scala
+++ b/stage2/ToolsTasks.scala
@@ -1,5 +1,6 @@
package cbt
import scala.collection.immutable.Seq
+import java.net._
import java.io.{Console=>_,_}
import java.nio.file._
class ToolsTasks(
@@ -13,14 +14,16 @@ class ToolsTasks(
){
private val paths = CbtPaths(cbtHome, cache)
import paths._
- private val mavenCentral = MavenResolver(cbtHasChanged,mavenCache,MavenResolver.central)
+ private def Resolver( urls: URL* ) = MavenResolver(cbtHasChanged,mavenCache,urls: _*)
implicit val logger: Logger = lib.logger
+ def createBasicBuild: Unit = lib.createBasicBuild( cwd )
+ def createBuildBuild: Unit = lib.createBuildBuild( cwd )
def resolve = {
ClassPath.flatten(
args(1).split(",").toVector.map{
d =>
val v = d.split(":")
- mavenCentral.resolveOne(MavenDependency(v(0),v(1),v(2))).classpath
+ Resolver(mavenCentral).bindOne(MavenDependency(v(0),v(1),v(2))).classpath
}
)
}
@@ -28,14 +31,14 @@ class ToolsTasks(
args(1).split(",").toVector.map{
d =>
val v = d.split(":")
- mavenCentral.resolveOne(MavenDependency(v(0),v(1),v(2))).dependencyTree
+ Resolver(mavenCentral).bindOne(MavenDependency(v(0),v(1),v(2))).dependencyTree
}.mkString("\n\n")
}
def amm = ammonite
def ammonite = {
val version = args.lift(1).getOrElse(constants.scalaVersion)
val scalac = new ScalaCompilerDependency( cbtHasChanged,mavenCache, version )
- val d = mavenCentral.resolveOne(
+ val d = Resolver(mavenCentral).bindOne(
MavenDependency(
"com.lihaoyi","ammonite-repl_2.11.7",args.lift(1).getOrElse("0.5.7")
)
@@ -52,24 +55,22 @@ class ToolsTasks(
"scala.tools.nsc.MainGenericRunner", Seq("-cp", scalac.classpath.string), scalac.classLoader(classLoaderCache)
)
}
- def scaffoldBasicBuild: Unit = lib.scaffoldBasicBuild( cwd )
- def scaffoldBuildBuild: Unit = lib.scaffoldBuildBuild( cwd )
def cbtEarlyDependencies = {
val scalaVersion = args.lift(1).getOrElse(constants.scalaVersion)
val scalaMajorVersion = scalaVersion.split("\\.").take(2).mkString(".")
val scalaXmlVersion = args.lift(2).getOrElse(constants.scalaXmlVersion)
val zincVersion = args.lift(3).getOrElse(constants.zincVersion)
val scalaDeps = Seq(
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)),
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion))
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)),
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion))
)
val scalaXml = Dependencies(
- mavenCentral.resolveOne(MavenDependency("org.scala-lang.modules","scala-xml_"+scalaMajorVersion,scalaXmlVersion)),
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-library",scalaVersion))
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang.modules","scala-xml_"+scalaMajorVersion,scalaXmlVersion)),
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-library",scalaVersion))
)
- val zinc = mavenCentral.resolveOne(MavenDependency("com.typesafe.zinc","zinc",zincVersion))
+ val zinc = Resolver(mavenCentral).bindOne(MavenDependency("com.typesafe.zinc","zinc",zincVersion))
def valName(dep: BoundMavenDependency) = {
val words = dep.artifactId.split("_").head.split("-")