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/compiler/scala/tools/nsc/ScriptRunner.scala | |
parent | ecca1a73d88565a120232553d7653aee2bf6bb41 (diff) | |
download | scala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.gz scala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.bz2 scala-26400b7b32cb6b3d004e35de033f7152e886ff71.zip |
fixed classpath in method runScript
Diffstat (limited to 'src/compiler/scala/tools/nsc/ScriptRunner.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ScriptRunner.scala | 32 |
1 files changed, 22 insertions, 10 deletions
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( |