1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
package cbt_examples_build.cross_rewrite
import cbt._
import java.io.File
import scala.meta._
import scalafix.util._
import scalafix.util.TreePatch._
import scalafix.util.TokenPatch._
class Build(val context: Context) extends BaseBuild{ outer =>
override def defaultScalaVersion = "2.11.8"
def versions = Seq[(String, Seq[Patch])](
scalaVersion -> Seq(),
"2.12.1" -> Seq(
RemoveGlobalImport(
importer"scala.concurrent.Future"
),
AddGlobalImport(
importer"scala.util.Try"
)
)
)
def libs = Seq[(String, MavenDependency, Seq[Patch])](
(
"scalaz",
ScalaDependency( "org.scalaz", "scalaz-core", "7.2.2" ),
Seq(
)
),
(
"cats",
ScalaDependency( "org.typelevel", "cats", "0.9.0" ),
Seq(
)
)
)
def cross = versions.flatMap{ case ( v, version_rewrites ) =>
libs.map{
case ( label, dep, lib_rewrites ) =>
val d = outer.target / "rewrites" / label ++ "-" ++ v
d.mkdirs
new Build(context) with Scalafix with PackageJars{
override def groupId = "org.cvogt"
override def artifactId = "cbt-examples-cross-rewrite-" + label
override def version = "0.1"
override def defaultScalaVersion = v
override def dependencies = super.dependencies ++ Resolver( mavenCentral ).bind( dep )
override def projectDirectory = d
override def scaladoc = None
override def sources = {
val fromTo = lib.autoRelative( outer.sources ).collect{
case (location, relative) if location.isFile
=> location -> projectDirectory / "src" / relative
}
val to = fromTo.map(_._2)
assert( ( to diff to.distinct ).isEmpty )
Scalafix.apply(lib).config(
outer.classpath,
files = fromTo,
patches = lib_rewrites ++ version_rewrites,
allowEmpty = true
).apply
to
}
}
}
}
}
|