Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cli: use varargs, remove unused methods #4757

Merged
merged 1 commit into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ private[scalafmt] trait CliUtils {
),
)
val exit = Cli.mainWithOptions(
nGContext.getArgs,
CliOptions.default.copy(common =
CliOptions.default.common.copy(
cwd = Some(workingDirectory),
Expand All @@ -26,6 +25,7 @@ private[scalafmt] trait CliUtils {
err = nGContext.err,
),
),
nGContext.getArgs: _*,
)
nGContext.exit(exit.code)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class CliOptionsJVMTest extends FunSuite {

Seq("--stdin", "--stdout").foreach { arg =>
test(s"don't write info when using $arg") {
val options = Cli.getConfig(Array(arg), baseCliOptionsWithOut).get
val options = Cli.getConfig(baseCliOptionsWithOut, arg).get
val cons = System.console()
if (cons ne null) options.common.info match {
case x: Output.FromWriter if x.obj eq cons.writer() =>
Expand Down
23 changes: 4 additions & 19 deletions scalafmt-cli/shared/src/main/scala/org/scalafmt/cli/Cli.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,21 @@ import java.nio.file.Paths

import scala.io.Source
import scala.util.Using
import scala.util.control.NoStackTrace

object Cli extends CliUtils {

private def throwIfError(exit: ExitCode): Unit = if (exit != ExitCode.Ok)
throw new RuntimeException(exit.toString) with NoStackTrace

def main(args: Array[String]): Unit = {
val exit = mainWithOptions(args, CliOptions.default)
val exit = mainWithOptions(CliOptions.default, args: _*)
sys.exit(exit.code)
}

def exceptionThrowingMain(args: Array[String]): Unit =
exceptionThrowingMainWithOptions(args, CliOptions.default)

def exceptionThrowingMainWithOptions(
args: Array[String],
options: CliOptions,
): Unit = {
val exit = mainWithOptions(args, options)
throwIfError(exit)
}

def mainWithOptions(args: Array[String], options: CliOptions): ExitCode =
getConfig(args, options) match {
def mainWithOptions(options: CliOptions, args: String*): ExitCode =
getConfig(options, args: _*) match {
case Some(x) => run(x)
case None => ExitCode.CommandLineArgumentError
}

def getConfig(args: Array[String], init: CliOptions): Option[CliOptions] = {
def getConfig(init: CliOptions, args: String*): Option[CliOptions] = {
val expandedArguments = expandArguments(args)
CliArgParser.scoptParser.parse(expandedArguments, init).map(CliOptions.auto)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class CliOptionsTest extends FunSuite {
}

test("write info to out if not writing to stdout") {
val options = Cli.getConfig(Array.empty[String], baseCliOptionsWithOut).get
val options = Cli.getConfig(baseCliOptionsWithOut).get
assertEquals(options.common.info.printStream, System.out)
}

Expand Down
Loading