Skip to content

Commit f8bc50b

Browse files
authored
Restrict Scala CLI detection to .sc and .scala files (#2971)
1 parent 63f9391 commit f8bc50b

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

modules/core/src/main/scala/org/scalasteward/core/buildtool/scalacli/ScalaCliAlg.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@ final class ScalaCliAlg[F[_]](implicit
4141

4242
override def containsBuild(buildRoot: BuildRoot): F[Boolean] = {
4343
val buildRootPath = buildRoot.relativePath.dropWhile(Set('.', '/'))
44+
val extensions = Set(".sc", ".scala")
4445
gitAlg
4546
.findFilesContaining(buildRoot.repo, "//> using lib ")
46-
.map(_.exists(_.startsWith(buildRootPath)))
47+
.map(_.exists(path => path.startsWith(buildRootPath) && extensions.exists(path.endsWith)))
4748
}
4849

4950
override def getDependencies(buildRoot: BuildRoot): F[List[Scope.Dependencies]] =

modules/core/src/test/scala/org/scalasteward/core/buildtool/scalacli/ScalaCliAlgTest.scala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,25 @@ import org.scalasteward.core.buildtool.BuildRoot
55
import org.scalasteward.core.buildtool.sbt.command._
66
import org.scalasteward.core.data.{GroupId, Repo, Version}
77
import org.scalasteward.core.edit.scalafix.ScalafixMigration
8+
import org.scalasteward.core.git.FileGitAlg
89
import org.scalasteward.core.mock.MockContext.context._
910
import org.scalasteward.core.mock.MockState
1011
import org.scalasteward.core.mock.MockState.TraceEntry.{Cmd, Log}
1112
import org.scalasteward.core.util.Nel
1213

1314
class ScalaCliAlgTest extends CatsEffectSuite {
15+
test("containsBuild: directive in non-source file") {
16+
val repo = Repo("user", "repo")
17+
val buildRoot = BuildRoot(repo, ".")
18+
val fileWithUsingLib = "test.md" // this test fails if the extension is .scala or .sc
19+
val grepCmd = FileGitAlg.gitCmd.toList ++
20+
List("grep", "-I", "--fixed-strings", "--files-with-matches", "//> using lib ")
21+
val initial =
22+
MockState.empty.copy(commandOutputs = Map(grepCmd -> Right(List(fileWithUsingLib))))
23+
val obtained = scalaCliAlg.containsBuild(buildRoot).runA(initial)
24+
assertIO(obtained, false)
25+
}
26+
1427
test("getDependencies") {
1528
val repo = Repo("user", "repo")
1629
val buildRoot = BuildRoot(repo, ".")

0 commit comments

Comments
 (0)