Skip to content

Commit b59b4ab

Browse files
committed
Remove BuildToolDispatcher#getAdditionalDependencies
1 parent 9231c0f commit b59b4ab

File tree

5 files changed

+47
-64
lines changed

5 files changed

+47
-64
lines changed

modules/core/src/main/scala/org/scalasteward/core/application/Context.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ import org.scalasteward.core.buildtool.sbt.SbtAlg
2929
import org.scalasteward.core.coursier.{CoursierAlg, VersionsCache}
3030
import org.scalasteward.core.edit.EditAlg
3131
import org.scalasteward.core.edit.hooks.HookExecutor
32+
import org.scalasteward.core.edit.scalafix.{ScalafixMigrationsFinder, ScalafixMigrationsLoader}
3233
import org.scalasteward.core.git.{GenGitAlg, GitAlg}
3334
import org.scalasteward.core.io.{FileAlg, ProcessAlg, WorkspaceAlg}
3435
import org.scalasteward.core.nurture.{NurtureAlg, PullRequestData, PullRequestRepository}
3536
import org.scalasteward.core.persistence.{CachingKeyValueStore, JsonKeyValueStore}
3637
import org.scalasteward.core.repocache._
3738
import org.scalasteward.core.repoconfig.RepoConfigAlg
38-
import org.scalasteward.core.edit.scalafix.{ScalafixMigrationsFinder, ScalafixMigrationsLoader}
3939
import org.scalasteward.core.scalafmt.ScalafmtAlg
4040
import org.scalasteward.core.update.{ArtifactMigrations, FilterAlg, PruningAlg, UpdateAlg}
4141
import org.scalasteward.core.util._
@@ -133,7 +133,7 @@ object Context {
133133
implicit val vcsExtraAlg: VCSExtraAlg[F] = VCSExtraAlg.create[F](config)
134134
implicit val pullRequestRepository: PullRequestRepository[F] =
135135
new PullRequestRepository[F](pullRequestsStore)
136-
implicit val scalafmtAlg: ScalafmtAlg[F] = ScalafmtAlg.create[F]
136+
implicit val scalafmtAlg: ScalafmtAlg[F] = new ScalafmtAlg[F](config)
137137
implicit val selfCheckAlg: SelfCheckAlg[F] = new SelfCheckAlg[F](config)
138138
implicit val coursierAlg: CoursierAlg[F] = CoursierAlg.create[F]
139139
implicit val versionsCache: VersionsCache[F] =
@@ -142,7 +142,7 @@ object Context {
142142
implicit val mavenAlg: MavenAlg[F] = MavenAlg.create[F](config)
143143
implicit val sbtAlg: SbtAlg[F] = SbtAlg.create[F](config)
144144
implicit val millAlg: MillAlg[F] = MillAlg.create[F]
145-
implicit val buildToolDispatcher: BuildToolDispatcher[F] = new BuildToolDispatcher[F](config)
145+
implicit val buildToolDispatcher: BuildToolDispatcher[F] = new BuildToolDispatcher[F]
146146
implicit val refreshErrorAlg: RefreshErrorAlg[F] = new RefreshErrorAlg[F](refreshErrorStore)
147147
implicit val repoCacheAlg: RepoCacheAlg[F] = new RepoCacheAlg[F](config)
148148
implicit val editAlg: EditAlg[F] = new EditAlg[F]

modules/core/src/main/scala/org/scalasteward/core/buildtool/BuildToolDispatcher.scala

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package org.scalasteward.core.buildtool
1818

1919
import cats.Monad
2020
import cats.syntax.all._
21-
import org.scalasteward.core.application.Config
2221
import org.scalasteward.core.buildtool.maven.MavenAlg
2322
import org.scalasteward.core.buildtool.mill.MillAlg
2423
import org.scalasteward.core.buildtool.sbt.SbtAlg
@@ -28,7 +27,7 @@ import org.scalasteward.core.repoconfig.RepoConfig
2827
import org.scalasteward.core.scalafmt.ScalafmtAlg
2928
import org.scalasteward.core.vcs.data.{BuildRoot, Repo}
3029

31-
final class BuildToolDispatcher[F[_]](config: Config)(implicit
30+
final class BuildToolDispatcher[F[_]](implicit
3231
mavenAlg: MavenAlg[F],
3332
millAlg: MillAlg[F],
3433
sbtAlg: SbtAlg[F],
@@ -39,8 +38,8 @@ final class BuildToolDispatcher[F[_]](config: Config)(implicit
3938
getBuildRootsAndTools(repo, repoConfig).flatMap(_.flatTraverse { case (buildRoot, buildTools) =>
4039
for {
4140
dependencies <- buildTools.flatTraverse(_.getDependencies(buildRoot))
42-
additionalDependencies <- getAdditionalDependencies(buildRoot)
43-
} yield Scope.combineByResolvers(additionalDependencies ::: dependencies)
41+
maybeScalafmtDependency <- scalafmtAlg.getScopedScalafmtDependency(buildRoot)
42+
} yield Scope.combineByResolvers(maybeScalafmtDependency.toList ::: dependencies)
4443
})
4544

4645
def runMigration(repo: Repo, repoConfig: RepoConfig, migration: ScalafixMigration): F[Unit] =
@@ -65,9 +64,4 @@ final class BuildToolDispatcher[F[_]](config: Config)(implicit
6564
repoConfig: RepoConfig
6665
): F[List[(BuildRoot, List[BuildToolAlg[F]])]] =
6766
getBuildRoots(repo, repoConfig).traverse(findBuildTools)
68-
69-
private def getAdditionalDependencies(buildRoot: BuildRoot): F[List[Scope.Dependencies]] =
70-
scalafmtAlg
71-
.getScalafmtDependency(buildRoot)
72-
.map(_.map(dep => Scope(List(dep), List(config.defaultResolver))).toList)
7367
}

modules/core/src/main/scala/org/scalasteward/core/scalafmt/ScalafmtAlg.scala

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,43 +16,44 @@
1616

1717
package org.scalasteward.core.scalafmt
1818

19-
import cats.data.Nested
19+
import cats.Monad
20+
import cats.data.OptionT
2021
import cats.syntax.all._
21-
import cats.{Functor, Monad}
22-
import org.scalasteward.core.data.{Dependency, Version}
22+
import org.scalasteward.core.application.Config
23+
import org.scalasteward.core.data.{Scope, Version}
2324
import org.scalasteward.core.io.{FileAlg, ProcessAlg, WorkspaceAlg}
25+
import org.scalasteward.core.scalafmt.ScalafmtAlg.parseScalafmtConf
2426
import org.scalasteward.core.util.Nel
2527
import org.scalasteward.core.vcs.data.BuildRoot
2628

27-
trait ScalafmtAlg[F[_]] {
28-
def getScalafmtVersion(buildRoot: BuildRoot): F[Option[Version]]
29+
final class ScalafmtAlg[F[_]](config: Config)(implicit
30+
fileAlg: FileAlg[F],
31+
processAlg: ProcessAlg[F],
32+
workspaceAlg: WorkspaceAlg[F],
33+
F: Monad[F]
34+
) {
35+
def getScalafmtVersion(buildRoot: BuildRoot): F[Option[Version]] =
36+
for {
37+
buildRootDir <- workspaceAlg.buildRootDir(buildRoot)
38+
scalafmtConfFile = buildRootDir / ".scalafmt.conf"
39+
fileContent <- fileAlg.readFile(scalafmtConfFile)
40+
} yield fileContent.flatMap(parseScalafmtConf)
2941

30-
def version: F[String]
42+
def getScopedScalafmtDependency(buildRoot: BuildRoot): F[Option[Scope.Dependencies]] =
43+
OptionT(getScalafmtVersion(buildRoot))
44+
.map(version => Scope(List(scalafmtDependency(version)), List(config.defaultResolver)))
45+
.value
3146

32-
final def getScalafmtDependency(buildRoot: BuildRoot)(implicit
33-
F: Functor[F]
34-
): F[Option[Dependency]] =
35-
Nested(getScalafmtVersion(buildRoot)).map(scalafmtDependency).value
47+
def version: F[String] =
48+
workspaceAlg.rootDir
49+
.flatMap(processAlg.exec(Nel.of(scalafmtBinary, "--version"), _))
50+
.map(_.mkString.trim)
3651
}
3752

3853
object ScalafmtAlg {
39-
def create[F[_]](implicit
40-
fileAlg: FileAlg[F],
41-
workspaceAlg: WorkspaceAlg[F],
42-
processAlg: ProcessAlg[F],
43-
F: Monad[F]
44-
): ScalafmtAlg[F] =
45-
new ScalafmtAlg[F] {
46-
override def getScalafmtVersion(buildRoot: BuildRoot): F[Option[Version]] =
47-
for {
48-
buildRootDir <- workspaceAlg.buildRootDir(buildRoot)
49-
scalafmtConfFile = buildRootDir / ".scalafmt.conf"
50-
fileContent <- fileAlg.readFile(scalafmtConfFile)
51-
} yield fileContent.flatMap(parseScalafmtConf)
52-
53-
override def version: F[String] =
54-
workspaceAlg.rootDir
55-
.flatMap(processAlg.exec(Nel.of(scalafmtBinary, "--version"), _))
56-
.map(_.mkString.trim)
57-
}
54+
private def parseScalafmtConf(s: String): Option[Version] =
55+
"""version\s*=\s*(.+)""".r
56+
.findFirstMatchIn(s)
57+
.map(_.group(1).replace("\"", ""))
58+
.map(Version.apply)
5859
}

modules/core/src/main/scala/org/scalasteward/core/scalafmt/package.scala

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,16 @@ package object scalafmt {
2424
val scalafmtGroupId: GroupId =
2525
GroupId("org.scalameta")
2626

27-
val scalafmtArtifactId: ArtifactId =
28-
ArtifactId("scalafmt-core", s"scalafmt-core_$defaultScalaBinaryVersion")
27+
val scalafmtArtifactId: ArtifactId = {
28+
val core = "scalafmt-core"
29+
ArtifactId(core, s"${core}_$defaultScalaBinaryVersion")
30+
}
2931

30-
val scalafmtBinary: String = "scalafmt"
32+
private def scalafmtGroupIdBy(version: Version): GroupId =
33+
if (version > Version("2.0.0-RC1")) scalafmtGroupId else GroupId("com.geirsson")
3134

32-
def scalafmtDependency(scalafmtVersion: Version): Dependency =
33-
Dependency(
34-
if (scalafmtVersion > Version("2.0.0-RC1")) scalafmtGroupId else GroupId("com.geirsson"),
35-
scalafmtArtifactId,
36-
scalafmtVersion.value
37-
)
35+
def scalafmtDependency(version: Version): Dependency =
36+
Dependency(scalafmtGroupIdBy(version), scalafmtArtifactId, version.value)
3837

39-
def parseScalafmtConf(s: String): Option[Version] =
40-
"""version\s*=\s*(.+)""".r
41-
.findFirstMatchIn(s)
42-
.map(_.group(1).replace("\"", ""))
43-
.map(Version.apply)
38+
val scalafmtBinary: String = "scalafmt"
4439
}

modules/core/src/test/scala/org/scalasteward/core/scalafmt/ScalafmtAlgTest.scala

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,8 @@ class ScalafmtAlgTest extends FunSuite {
2222
.unsafeRunSync()
2323
val (state, maybeVersion) =
2424
scalafmtAlg.getScalafmtVersion(buildRoot).run(initialState).unsafeRunSync()
25-
val expectedState = MockState.empty.copy(
26-
trace = Vector(Cmd("read", s"$repoDir/.scalafmt.conf")),
27-
files = Map(
28-
scalafmtConf ->
29-
"""maxColumn = 100
30-
|version=2.0.0-RC8
31-
|align.openParenCallSite = false
32-
|""".stripMargin
33-
)
25+
val expectedState = initialState.copy(
26+
trace = Vector(Cmd("read", s"$repoDir/.scalafmt.conf"))
3427
)
3528

3629
assertEquals(maybeVersion, Some(Version("2.0.0-RC8")))

0 commit comments

Comments
 (0)