|
Scala example source code file (GenericRunnerCommand.scala)
The Scala GenericRunnerCommand.scala source code/* NSC -- new Scala compiler * Copyright 2007 LAMP/EPFL * @author Lex Spoon */ package scala.tools.nsc import GenericRunnerCommand._ /** A command for ScriptRunner */ class GenericRunnerCommand( args: List[String], override val settings: GenericRunnerSettings) extends CompilerCommand(args, settings) { def this(args: List[String], error: String => Unit) = this(args, new GenericRunnerSettings(error)) def this(args: List[String]) = this(args, str => Console.println("Error: " + str)) /** name of the associated compiler command */ override def cmdName = "scala" def compCmdName = "scalac" // change CompilerCommand behavior override def shouldProcessArguments: Boolean = false private lazy val (_ok, targetAndArguments) = settings.processArguments(args, false) override def ok = _ok private def guessHowToRun(target: String): GenericRunnerCommand.HowToRun = { if (!ok) Error else if (io.Jar.isJarOrZip(target)) AsJar else if (util.ScalaClassLoader.classExists(settings.classpathURLs, target)) AsObject else { val f = io.File(target) if (!f.hasExtension("class", "jar", "zip") && f.canRead) AsScript else sys.error("Cannot figure out how to run target: " + target) } } /** String with either the jar file, class name, or script file name. */ def thingToRun = targetAndArguments.headOption getOrElse "" /** Arguments to thingToRun. */ def arguments = targetAndArguments drop 1 val howToRun = targetAndArguments match { case Nil => AsRepl case hd :: _ => waysToRun find (_.name == settings.howtorun.value) getOrElse guessHowToRun(hd) } private def interpolate(s: String) = s.trim.replaceAll("@cmd@", cmdName).replaceAll("@compileCmd@", compCmdName) + "\n" def shortUsageMsg = interpolate(""" Usage: @cmd@ <options> [ Other Scala examples (source code examples)Here is a short list of links related to this Scala GenericRunnerCommand.scala source code file: |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.