Eugene Yokota 2018-07-14 01:05:14 -04:00
parent 18602c521d
commit 439e67c8c4
3 changed files with 37 additions and 2 deletions

View File

@ -161,7 +161,8 @@ private[sbt] object CrossJava {
case Some(v) =>
projectJavaVersions flatMap {
case (proj, versions) =>
if (versions.isEmpty || versions.contains(v)) Vector(proj -> versions)
if (versions.isEmpty || versions.contains[String](v.toString))
Vector(proj -> versions)
else Vector()
}
}
@ -184,7 +185,7 @@ private[sbt] object CrossJava {
val filterKeys: Set[AttributeKey[_]] = Set(javaHome).map(_.key)
val projectsContains: Reference => Boolean = projects.map(_._1).toSet.contains
val projectsContains: Reference => Boolean = projects.map(_._1).toSet[Reference].contains(_)
// Filter out any old javaHome version settings that were added, this is just for hygiene.
val filteredRawAppend = session.rawAppend.filter(_.key match {

View File

@ -0,0 +1,25 @@
import complete.DefaultParsers._
val check = inputKey[Unit]("Runs the check")
lazy val root = (project in file("."))
.settings(
ThisBuild / scalaVersion := "2.12.6",
crossJavaVersions := List("1.8", "10"),
// read out.txt and see if it starts with the passed in number
check := {
val arg1: Int = (Space ~> NatBasic).parsed
file("out.txt") match {
case out if out.exists =>
IO.readLines(out).headOption match {
case Some(v) if v startsWith arg1.toString => ()
case Some(v) if v startsWith s"1.$arg1" => ()
case x => sys.error(s"unexpected value: $x")
}
case out => sys.error(s"$out doesn't exist")
}
},
Compile / run / fork := true,
)

View File

@ -4,3 +4,12 @@
> java++ 10!
> run
> check 10
# test safe switching
$ copy-file changes/build.sbt build.sbt
$ delete out.txt
> reload
> clean
> java++ 10
> run
> check 10