summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ScriptRunner.scala
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2007-06-04 15:52:56 +0000
committermichelou <michelou@epfl.ch>2007-06-04 15:52:56 +0000
commit26400b7b32cb6b3d004e35de033f7152e886ff71 (patch)
tree9c965f163a8852c7a72272b4bb3632cd5d9a4929 /src/compiler/scala/tools/nsc/ScriptRunner.scala
parentecca1a73d88565a120232553d7653aee2bf6bb41 (diff)
downloadscala-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.scala32
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(