Skip to content

Commit 88d9bee

Browse files
committed
Rewrote plugin to remove all 0.12.x era idioms
1 parent 6b20c54 commit 88d9bee

File tree

1 file changed

+30
-28
lines changed

1 file changed

+30
-28
lines changed

Diff for: src/main/scala/scoverage/ScoverageSbtPlugin.scala

+30-28
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
package scoverage
22

3-
import sbt.Keys._
43
import sbt._
5-
import scoverage.report.{ScoverageHtmlWriter, ScoverageXmlWriter, CoberturaXmlWriter}
4+
import sbt.Keys._
5+
import scoverage.report._
66

77
object ScoverageSbtPlugin extends ScoverageSbtPlugin
88

99
class ScoverageSbtPlugin extends sbt.Plugin {
1010

1111
val OrgScoverage = "org.scoverage"
12-
val ArtifactId = "scalac-scoverage-plugin"
12+
val ScalacArtifact = "scalac-scoverage-plugin"
1313
val ScoverageVersion = "0.99.7"
1414

1515
object ScoverageKeys {
1616
val excludedPackages = SettingKey[String]("scoverage-excluded-packages")
1717
val minimumCoverage = SettingKey[Double]("scoverage-minimum-coverage")
1818
val failOnMinimumCoverage = SettingKey[Boolean]("scoverage-fail-on-minimum-coverage")
19-
val highlighting = settingKey[Boolean]("enables range positioning for highlighting")
19+
val highlighting = SettingKey[Boolean]("scoverage-highlighting", "enables range positioning for highlighting")
2020
}
2121

2222
import ScoverageKeys._
2323

24-
lazy val Scoverage: Configuration = config("scoverage") extend Compile
24+
lazy val Scoverage: Configuration = config("scoverage")
2525
lazy val ScoverageTest: Configuration = config("scoverage-test") extend Scoverage
2626

2727
lazy val instrumentSettings: Seq[Setting[_]] = {
@@ -30,7 +30,7 @@ class ScoverageSbtPlugin extends sbt.Plugin {
3030
Seq(
3131
ivyConfigurations ++= Seq(Scoverage.hide, ScoverageTest.hide),
3232
libraryDependencies += {
33-
OrgScoverage % (ArtifactId + "_" + scalaBinaryVersion.value) % ScoverageVersion % Scoverage.name
33+
OrgScoverage % (ScalacArtifact + "_" + scalaBinaryVersion.value) % ScoverageVersion % Scoverage.name
3434
},
3535
sources in Scoverage := (sources in Compile).value,
3636
sourceDirectory in Scoverage := (sourceDirectory in Compile).value,
@@ -44,15 +44,15 @@ class ScoverageSbtPlugin extends sbt.Plugin {
4444
highlighting := false,
4545
excludedPackages in Scoverage := "",
4646

47-
scalacOptions in Scoverage := {
48-
val target = crossTarget.value
49-
val scoverageDeps = update.value matching configurationFilter(Scoverage.name)
50-
scoverageDeps.find(_.getAbsolutePath.contains(ArtifactId)) match {
51-
case None => throw new Exception(s"Fatal: $ArtifactId not in libraryDependencies")
47+
scalacOptions in Scoverage <++= (crossTarget in Compile, update, excludedPackages in Scoverage) map {
48+
(target, report, excluded) =>
49+
val scoverageDeps = report matching configurationFilter(Scoverage.name)
50+
scoverageDeps.find(_.getAbsolutePath.contains(ScalacArtifact)) match {
51+
case None => throw new Exception(s"Fatal: $ScalacArtifact not in libraryDependencies")
5252
case Some(classpath) =>
5353
Seq(
5454
"-Xplugin:" + classpath.getAbsolutePath,
55-
"-P:scoverage:excludedPackages:" + Option((excludedPackages in Scoverage).value).getOrElse(""),
55+
"-P:scoverage:excludedPackages:" + Option(excluded).getOrElse(""),
5656
"-P:scoverage:dataDir:" + target.getAbsolutePath + "/scoverage-data"
5757
)
5858
}
@@ -74,20 +74,16 @@ class ScoverageSbtPlugin extends sbt.Plugin {
7474
externalDependencyClasspath in ScoverageTest <<= Classpaths
7575
.concat(externalDependencyClasspath in ScoverageTest, externalDependencyClasspath in Test),
7676

77-
internalDependencyClasspath in Scoverage <<= (internalDependencyClasspath in Compile),
77+
internalDependencyClasspath in Scoverage := (internalDependencyClasspath in Compile).value,
7878
internalDependencyClasspath in ScoverageTest <<= (internalDependencyClasspath in Test, internalDependencyClasspath in ScoverageTest, classDirectory in Compile) map {
7979
(testDeps, scoverageDeps, oldClassDir) =>
8080
scoverageDeps ++ testDeps.filter(_.data != oldClassDir)
8181
},
8282

83-
testOptions in ScoverageTest <<= (testOptions in Test),
84-
85-
// copy the test task into compile so we can do scoverage:test instead of scoverage-test:test
86-
test in Scoverage <<= (test in ScoverageTest),
87-
88-
test in Scoverage := {
89-
(test in Scoverage).value
83+
testOptions in ScoverageTest := (testOptions in Test).value,
9084

85+
test in ScoverageTest := {
86+
(test in ScoverageTest).value
9187
streams.value.log.info(s"[scoverage] Waiting for measurement data to sync...")
9288
Thread.sleep(2000) // have noticed some delay in writing, hacky but works
9389

@@ -107,15 +103,16 @@ class ScoverageSbtPlugin extends sbt.Plugin {
107103
val measurements = IOUtils.invoked(measurementFiles)
108104
coverage.apply(measurements)
109105

110-
streams.value.log.info(s"[scoverage] Generating Cobertura report [${coberturaDir.getAbsolutePath}/cobertura.xml]")
111-
new CoberturaXmlWriter(baseDirectory in Compile value, coberturaDir).write(coverage)
106+
streams.value.log
107+
.info(s"[scoverage] Generating Cobertura report [${coberturaDir.getAbsolutePath}/cobertura.xml]")
108+
new CoberturaXmlWriter((baseDirectory in Compile).value, coberturaDir).write(coverage)
112109

113110
streams.value.log.info(s"[scoverage] Generating XML report [${reportDir.getAbsolutePath}/scoverage.xml]")
114-
new ScoverageXmlWriter(scalaSource in Compile value, reportDir, false).write(coverage)
115-
new ScoverageXmlWriter(scalaSource in Compile value, reportDir, true).write(coverage)
111+
new ScoverageXmlWriter((scalaSource in Compile).value, reportDir, false).write(coverage)
112+
new ScoverageXmlWriter((scalaSource in Compile).value, reportDir, true).write(coverage)
116113

117114
streams.value.log.info(s"[scoverage] Generating HTML report [${reportDir.getAbsolutePath}/index.html]")
118-
new ScoverageHtmlWriter(scalaSource in Compile value, reportDir).write(coverage)
115+
new ScoverageHtmlWriter((scalaSource in Compile).value, reportDir).write(coverage)
119116

120117
streams.value.log.info("[scoverage] Reports completed")
121118

@@ -129,17 +126,22 @@ class ScoverageSbtPlugin extends sbt.Plugin {
129126
if (is100(min) && is100(coverage.statementCoveragePercent)) {
130127
streams.value.log.info(s"[scoverage] 100% Coverage !")
131128
} else if (min > coverage.statementCoveragePercent) {
132-
streams.value.log.error(s"[scoverage] Coverage is below minimum [${coverage.statementCoverageFormatted}% < $min%]")
129+
streams.value.log
130+
.error(s"[scoverage] Coverage is below minimum [${coverage.statementCoverageFormatted}% < $min%]")
133131
if (failOnMin)
134132
throw new RuntimeException("Coverage minimum was not reached")
135133
} else {
136-
streams.value.log.info(s"[scoverage] Coverage is above minimum [${coverage.statementCoverageFormatted}% > $min%]")
134+
streams.value.log
135+
.info(s"[scoverage] Coverage is above minimum [${coverage.statementCoverageFormatted}% > $min%]")
137136
}
138137
}
139138

140139
streams.value.log.info(s"[scoverage] All done. Coverage was [${coverage.statementCoverageFormatted}%]")
141140
()
142-
}
141+
},
142+
143+
// copy the test task into compile so we can do scoverage:test instead of scoverage-test:test
144+
test in Scoverage := (test in ScoverageTest).value
143145
)
144146
}
145147
}

0 commit comments

Comments
 (0)