summaryrefslogtreecommitdiff
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
parentecca1a73d88565a120232553d7653aee2bf6bb41 (diff)
downloadscala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.gz
scala-26400b7b32cb6b3d004e35de033f7152e886ff71.tar.bz2
scala-26400b7b32cb6b3d004e35de033f7152e886ff71.zip
fixed classpath in method runScript
-rw-r--r--src/compiler/scala/tools/nsc/MainGenericRunner.scala22
-rw-r--r--src/compiler/scala/tools/nsc/ScriptRunner.scala32
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(