diff --git a/src/main/scala/scalafix/sbt/ScalafixPlugin.scala b/src/main/scala/scalafix/sbt/ScalafixPlugin.scala index 926ec8be..72a5f903 100644 --- a/src/main/scala/scalafix/sbt/ScalafixPlugin.scala +++ b/src/main/scala/scalafix/sbt/ScalafixPlugin.scala @@ -403,24 +403,31 @@ object ScalafixPlugin extends AutoPlugin { (ScalafixConfig / externalDependencyClasspath).value .flatMap(_.get(moduleID.key)) - if (shellArgs.rules.isEmpty && shellArgs.extra == List("--help")) { - scalafixHelp + val allResolvers = + ((ThisBuild / scalafixResolvers).value ++ (ThisBuild / scalafixSbtResolversAsCoursierRepositories).value).distinct + val (shell, interface) = scalafixArgsFromShell( + shellArgs, + projectDepsExternal, + projectDepsInternal, + scalafixScalaBinaryVersion.value, + scalafixDependencies.value, + allResolvers, + (ThisBuild / scalafixCallback).value + ) + + val informationalInvocation = shellArgs.extra + .intersect(List("--help", "-h", "--version", "-v")) + .nonEmpty + + if (informationalInvocation) { + Def.task[Unit]( + interface.withArgs(Arg.ParsedArgs(shell.extra)).run() + ) } else { val scalafixConf = (config / scalafixConfig).value.map(_.toPath) - val allResolvers = - ((ThisBuild / scalafixResolvers).value ++ (ThisBuild / scalafixSbtResolversAsCoursierRepositories).value).distinct - val (shell, mainInterface0) = scalafixArgsFromShell( - shellArgs, - projectDepsExternal, - projectDepsInternal, - scalafixScalaBinaryVersion.value, - scalafixDependencies.value, - allResolvers, - (ThisBuild / scalafixCallback).value - ) val maybeNoCache = if (shell.noCache || !scalafixCaching.value) Seq(Arg.NoCache) else Nil - val mainInterface = mainInterface0 + val mainInterface = interface .withArgs(maybeNoCache: _*) .withArgs( Arg.PrintStream(errorLogger), @@ -443,24 +450,6 @@ object ScalafixPlugin extends AutoPlugin { task.tag(Scalafix) } - private def scalafixHelp: Def.Initialize[Task[Unit]] = - Def.task { - val allResolvers = - ((ThisBuild / scalafixResolvers).value ++ (ThisBuild / scalafixSbtResolversAsCoursierRepositories).value).distinct - ScalafixInterface - .provider( - scalafixScalaBinaryVersion = scalafixScalaBinaryVersion.value, - scalafixDependencies = scalafixDependencies.value, - scalafixResolvers = allResolvers, - logger = ScalafixInterface.defaultLogger, - callback = (ThisBuild / scalafixCallback).value, - maybeToolClasspath = None - )() - .withArgs(Arg.ParsedArgs(List("--help"))) - .run() - () - } - private def scalafixSyntactic( mainInterface: ScalafixInterface, shellArgs: ShellArgs,