From 1eed5814fd70bf3c992b0a95d769b535cb99a0d0 Mon Sep 17 00:00:00 2001 From: Wojciech Mazur Date: Fri, 14 Jul 2023 15:24:56 +0200 Subject: [PATCH] Allow to use custom maven repo in Scala CLI --- project-builder/build-revision.sh | 2 +- project-builder/scala-cli/build.scala | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/project-builder/build-revision.sh b/project-builder/build-revision.sh index c8561ad3..71f3b10d 100755 --- a/project-builder/build-revision.sh +++ b/project-builder/build-revision.sh @@ -48,5 +48,5 @@ else ls -l repo/ scala-cli clean $scriptDir/scala-cli/ scala-cli clean repo - scala-cli $scriptDir/scala-cli/build.scala -- repo "$scalaVersion" "$projectConfig" + scala-cli $scriptDir/scala-cli/build.scala -- repo "$scalaVersion" "$projectConfig" "$mvnRepoUrl" fi diff --git a/project-builder/scala-cli/build.scala b/project-builder/scala-cli/build.scala index 8bdd66d8..c4671331 100644 --- a/project-builder/scala-cli/build.scala +++ b/project-builder/scala-cli/build.scala @@ -12,7 +12,8 @@ import os.CommandResult @main def buildScalaCliProject( repositoryDir: String, scalaVersion: String, - configJson: String + configJson: String, + mavenRepoURL: String ): Unit = { println(s"Build config: ${configJson}") val config = @@ -20,7 +21,11 @@ import os.CommandResult else read[ProjectBuildConfig](configJson) println(s"Parsed config: ${config}") - val evaluator = CliTaskEvaluator(scalaVersion, repositoryDir) + val evaluator = CliTaskEvaluator( + scalaVersion = scalaVersion, + repositoryDir = repositoryDir, + mavenRepoURL = Option(mavenRepoURL).filterNot(_.isEmpty) + ) import evaluator.{eval, evalAsDependencyOf, evalWhen} val compileResult = eval[Unit](cmd("compile")) @@ -99,7 +104,7 @@ case class CliCommand[T]( errHandler: (CommandResult, EvalResult.Failure) => EvalResult[T] ) def cmd(args: String*) = CliCommand[Unit](args, (_, failure) => failure) -class CliTaskEvaluator(scalaVersion: String, repositoryDir: String) +class CliTaskEvaluator(scalaVersion: String, repositoryDir: String, mavenRepoURL: Option[String]) extends TaskEvaluator[CliCommand] { import TaskEvaluator.* @@ -124,9 +129,11 @@ class CliTaskEvaluator(scalaVersion: String, repositoryDir: String) repositoryDir, s"--server=false", s"--scala-version=${scalaVersion}", - "--scalac-option=-J-Xss8M", + "--scalac-option=-J-Xss10M", "--scalac-option=-J-Xmx=7G", - "--scalac-option=-J-Xms=4G" + "--scalac-option=-J-Xms=4G", + mavenRepoURL.map(s"--repository=" + _).getOrElse(""), + "-v" ) .call(check = false, stderr = os.Pipe) val result = proc.exitCode