Skip to content

Commit d6437c9

Browse files
authored
Make shebang run not check dependency updates (#2022)
1 parent e6e149b commit d6437c9

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

modules/cli/src/main/scala/scala/cli/commands/run/Run.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import java.util.concurrent.CompletableFuture
1111
import scala.build.EitherCps.{either, value}
1212
import scala.build.*
1313
import scala.build.errors.BuildException
14-
import scala.build.input.{Inputs, ScalaCliInvokeData}
14+
import scala.build.input.{Inputs, ScalaCliInvokeData, SubCommand}
1515
import scala.build.internal.util.ConsoleUtils.ScalaCliConsole
1616
import scala.build.internal.{Constants, Runner, ScalaJsLinkerConfig}
1717
import scala.build.options.{BuildOptions, JavaOpt, Platform, ScalacOpt}
@@ -117,7 +117,19 @@ object Run extends ScalaCommand[RunOptions] with BuildCommandHelpers {
117117
logger: Logger,
118118
invokeData: ScalaCliInvokeData
119119
): Unit = {
120-
val initialBuildOptions = buildOptionsOrExit(options)
120+
val initialBuildOptions = {
121+
val buildOptions = buildOptionsOrExit(options)
122+
if (invokeData.subCommand == SubCommand.Shebang) {
123+
val suppressDepUpdateOptions = buildOptions.suppressWarningOptions.copy(
124+
suppressOutdatedDependencyWarning = Some(true)
125+
)
126+
127+
buildOptions.copy(
128+
suppressWarningOptions = suppressDepUpdateOptions
129+
)
130+
}
131+
else buildOptions
132+
}
121133

122134
val inputs = options.shared.inputs(
123135
inputArgs,

modules/integration/src/test/scala/scala/cli/integration/RunScriptTestDefinitions.scala

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,4 +384,22 @@ trait RunScriptTestDefinitions { _: RunTestDefinitions =>
384384
expect(output.contains("shebang header"))
385385
}
386386
}
387+
388+
test("shebang run does not produce update-dependency warnings") {
389+
val dependencyOsLib = "com.lihaoyi::os-lib:0.7.8"
390+
391+
val inputs = TestInputs(
392+
os.rel / "script.sc" ->
393+
s"""//> using scala "$actualScalaVersion"
394+
|//> using dep "$dependencyOsLib"
395+
|
396+
|println(args.toList)""".stripMargin
397+
)
398+
inputs.fromRoot { root =>
399+
val proc = os.proc(TestUtil.cli, "shebang", "script.sc", "1", "2", "3", "-v")
400+
.call(cwd = root, mergeErrIntoOut = true)
401+
402+
expect(!proc.out.text.contains("[hint] \"os-lib is outdated"))
403+
}
404+
}
387405
}

0 commit comments

Comments
 (0)