Skip to content

Commit

Permalink
Cli: use varargs, remove unused methods
Browse files Browse the repository at this point in the history
  • Loading branch information
kitbellew committed Jan 28, 2025
1 parent dfde311 commit d883b93
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 88 deletions.
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

0 comments on commit d883b93

Please sign in to comment.