in scala/scalafmt/scalafmt/ScalafmtWorker.scala [15:42]
def main(args: Array[String]): Unit = Worker.workerMain(args, ScalafmtWorker)
def work(args: Array[String]) {
val argName = List("config", "input", "output")
val argFile = args.map{x => new File(x)}
val namespace = argName.zip(argFile).toMap
val source = FileOps.readFile(namespace.getOrElse("input", new File("")))(Codec.UTF8)
val config = Config.fromHoconFile(namespace.getOrElse("config", new File(""))).get
@tailrec
def format(code: String): String = {
val formatted = Scalafmt.format(code, config).get
if (code == formatted) code else format(formatted)
}
val output = try {
format(source)
} catch {
case e @ (_: org.scalafmt.Error | _: scala.meta.parsers.ParseException) => {
System.out.println("Unable to format file due to bug in scalafmt")
System.out.println(e.toString)
source
}
}
Files.write(namespace.getOrElse("output", new File("")).toPath, output.getBytes)
}