diff options
author | michelou <michelou@epfl.ch> | 2007-06-04 15:52:56 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2007-06-04 15:52:56 +0000 |
commit | 26400b7b32cb6b3d004e35de033f7152e886ff71 (patch) | |
tree | 9c965f163a8852c7a72272b4bb3632cd5d9a4929 /src | |
parent | ecca1a73d88565a120232553d7653aee2bf6bb41 (diff) | |
download | scala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.gz scala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.bz2 scala-26400b7b32cb6b3d004e35de033f7152e886ff71.zip |
fixed classpath in method runScript
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/MainGenericRunner.scala | 22 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/ScriptRunner.scala | 32 |
2 files changed, 27 insertions, 27 deletions
diff --git a/src/compiler/scala/tools/nsc/MainGenericRunner.scala b/src/compiler/scala/tools/nsc/MainGenericRunner.scala index e554ccfa72..53ae8cc793 100644 --- a/src/compiler/scala/tools/nsc/MainGenericRunner.scala +++ b/src/compiler/scala/tools/nsc/MainGenericRunner.scala @@ -10,7 +10,7 @@ package scala.tools.nsc import java.io.File import java.lang.{ClassNotFoundException, NoSuchMethodException} import java.lang.reflect.InvocationTargetException -import java.net.{MalformedURLException, URL} +import java.net.URL /** An object that runs Scala code. It has three possible * sources for the code to run: pre-compiled code, a script file, @@ -81,14 +81,8 @@ object MainGenericRunner { str.split(File.pathSeparator).toList def fileToURL(f: File): Option[URL] = - try { - Some(f.toURL) - } - catch { - case e: MalformedURLException => - Console.println(e) - None - } + try { Some(f.toURL) } + catch { case e => Console.println(e); None } def paths(str: String): List[URL] = for ( @@ -104,14 +98,8 @@ object MainGenericRunner { ) yield url.get def specToURL(spec: String): Option[URL] = - try { - Some(new URL(spec)) - } - catch { - case e: MalformedURLException => - Console.println(e) - None - } + try { Some(new URL(spec)) } + catch { case e => Console.println(e); None } def urls(specs: String): List[URL] = { val urls = for ( diff --git a/src/compiler/scala/tools/nsc/ScriptRunner.scala b/src/compiler/scala/tools/nsc/ScriptRunner.scala index 40ad350fda..ed67d1b951 100644 --- a/src/compiler/scala/tools/nsc/ScriptRunner.scala +++ b/src/compiler/scala/tools/nsc/ScriptRunner.scala @@ -9,6 +9,7 @@ package scala.tools.nsc import java.io.{BufferedReader, File, FileInputStream, FileOutputStream, FileReader, InputStreamReader, PrintWriter} import java.lang.reflect.InvocationTargetException +import java.net.URL import java.util.jar.{JarEntry, JarOutputStream} import scala.tools.nsc.io.PlainFile @@ -65,7 +66,7 @@ object ScriptRunner { val jar = new JarOutputStream(jarFileStream) val buf = new Array[byte](10240) - def addFromDir(dir: File, prefix: String): Unit = { + def addFromDir(dir: File, prefix: String) { for (entry <- dir.listFiles) { if (entry.isFile) { jar.putNextEntry(new JarEntry(prefix + entry.getName)) @@ -293,21 +294,32 @@ object ScriptRunner { def runScript( settings: GenericRunnerSettings, scriptFile: String, - scriptArgs: List[String]): Unit = + scriptArgs: List[String]) { val f = new File(scriptFile) - if (!f.exists || f.isDirectory) { - scala.Console.println("no such file: " + scriptFile) + if (!f.isFile) { + Console.println("no such file: " + scriptFile) return } withCompiledScript(settings, scriptFile)(compiledLocation => { - def pparts(path: String) = path.split(File.pathSeparator).toList - - val classpath = - pparts(settings.bootclasspath.value) ::: - List(compiledLocation) ::: - pparts(settings.classpath.value) + def paths0(str: String): List[String] = + str.split(File.pathSeparator).toList + + def fileToURL(f: File): Option[URL] = + try { Some(f.toURL) } + catch { case e => Console.println(e); None } + + def paths(str: String): List[URL] = + for ( + file <- paths0(str) map (new File(_)) if file.exists; + val url = fileToURL(file); if !url.isEmpty + ) yield url.get + + val classpath: List[URL] = + paths(settings.bootclasspath.value) ::: + paths(compiledLocation) ::: + paths(settings.classpath.value) try { ObjectRunner.run( |