Skip to content

Commit

Permalink
Refactor in Artifacts
Browse files Browse the repository at this point in the history
- remove unnecessary brackets & anonymous params where applicable
- extract duplicated code to a method
- misc Scala 3 syntax changes
  • Loading branch information
Gedochao committed Apr 11, 2022
1 parent 1f758fb commit 9a004cc
Showing 1 changed file with 22 additions and 26 deletions.
48 changes: 22 additions & 26 deletions modules/options/src/main/scala/scala/build/Artifacts.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import coursier.cache.FileCache
import coursier.core.{Classifier, Module}
import coursier.parse.RepositoryParser
import coursier.util.Task
import coursier.{Dependency => CsDependency, Fetch, core => csCore, util => csUtil}
import dependency._
import coursier.{Dependency as CsDependency, Fetch, core as csCore, util as csUtil}
import dependency.*

import java.net.URL

import scala.build.CoursierUtils._
import scala.build.CoursierUtils.*
import scala.build.EitherCps.{either, value}
import scala.build.Ops._
import scala.build.Ops.*
import scala.build.errors.{
BuildException,
CompositeBuildException,
Expand Down Expand Up @@ -156,11 +156,11 @@ object Artifacts {
maybeSnapshotRepo ++ extraRepositories

val internalDependencies =
jvmRunnerDependencies.map(Positioned.none(_)) ++
jvmTestRunnerDependencies.map(Positioned.none(_)) ++
jsTestBridgeDependencies.map(Positioned.none(_)) ++
nativeTestInterfaceDependencies.map(Positioned.none(_)) ++
jmhDependencies.map(Positioned.none(_))
jvmRunnerDependencies.map(Positioned.none) ++
jvmTestRunnerDependencies.map(Positioned.none) ++
jsTestBridgeDependencies.map(Positioned.none) ++
nativeTestInterfaceDependencies.map(Positioned.none) ++
jmhDependencies.map(Positioned.none)
val updatedDependencies = dependencies ++ internalDependencies

val updatedDependenciesMessage = {
Expand Down Expand Up @@ -225,11 +225,10 @@ object Artifacts {
None
}

val scalaNativeCli = fetchedScalaNativeCli.toSeq.flatMap { fetched =>
fetched.fullDetailedArtifacts.collect { case (_, _, _, Some(f)) =>
os.Path(f, Os.pwd)
}
}
def fetchedArtifactToPath(fetched: Fetch.Result): Seq[os.Path] =
fetched.fullDetailedArtifacts.collect { case (_, _, _, Some(f)) => os.Path(f, Os.pwd) }

val scalaNativeCli = fetchedScalaNativeCli.toSeq.flatMap(fetchedArtifactToPath)

val fetchedScalaJsCli = scalaJsCliDependency match {
case Some(dependency) =>
Expand All @@ -253,11 +252,7 @@ object Artifacts {
None
}

val scalaJsCli = fetchedScalaJsCli.toSeq.flatMap { fetched =>
fetched.fullDetailedArtifacts.collect { case (_, _, _, Some(f)) =>
os.Path(f, Os.pwd)
}
}
val scalaJsCli = fetchedScalaJsCli.toSeq.flatMap(fetchedArtifactToPath)

val extraStubsJars =
if (addStubs)
Expand Down Expand Up @@ -403,6 +398,8 @@ object Artifacts {
.left.map(errors => new RepositoryFormatError(errors))
}

val extraRepositoriesWithFallback = extraRepositories0 :+ fallbackRepository

val forceScalaVersions = forceScalaVersionOpt match {
case None => Nil
case Some(sv) =>
Expand All @@ -424,20 +421,19 @@ object Artifacts {
)
}

val forceVersion = forceScalaVersions ++ forcedVersions

// FIXME Many parameters that we could allow to customize here
var fetcher = coursier.Fetch()
.withCache(cache)
.addRepositories(extraRepositories0 :+ fallbackRepository: _*)
.addDependencies(dependencies.value: _*)
.mapResolutionParams { params =>
params
.addForceVersion(forceScalaVersions ++ forcedVersions: _*)
}
.addRepositories(extraRepositoriesWithFallback*)
.addDependencies(dependencies.value*)
.mapResolutionParams(_.addForceVersion(forceVersion*))
for (classifiers <- classifiersOpt) {
if (classifiers("_"))
fetcher = fetcher.withMainArtifacts()
fetcher = fetcher
.addClassifiers(classifiers.toSeq.filter(_ != "_").map(coursier.Classifier(_)): _*)
.addClassifiers(classifiers.toSeq.filter(_ != "_").map(coursier.Classifier(_))*)
}

val res = cache.logger.use {
Expand Down

0 comments on commit 9a004cc

Please sign in to comment.