repl: -classpath argument
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.jet.cli.jvm;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import jet.modules.Module;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -92,7 +93,7 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments, K2JVMComp
|
||||
arguments.freeArgs.isEmpty() &&
|
||||
(argumentsSourceDirs == null || argumentsSourceDirs.size() == 0)) {
|
||||
|
||||
ReplFromTerminal.run(rootDisposable, dependencies);
|
||||
ReplFromTerminal.run(rootDisposable, dependencies, getClasspath(arguments));
|
||||
return ExitCode.OK;
|
||||
}
|
||||
|
||||
@@ -202,8 +203,19 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments, K2JVMComp
|
||||
}
|
||||
|
||||
if (arguments.classpath != null) {
|
||||
Iterable<String> classpath = Splitter.on(File.pathSeparatorChar).split(arguments.classpath);
|
||||
CompileEnvironmentUtil.addToClasspath(configuration.getEnvironment(), Iterables.toArray(classpath, String.class));
|
||||
List<File> classpath = getClasspath(arguments);
|
||||
CompileEnvironmentUtil.addToClasspath(configuration.getEnvironment(), Iterables.toArray(classpath, File.class));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static List<File> getClasspath(@NotNull K2JVMCompilerArguments arguments) {
|
||||
List<File> classpath = Lists.newArrayList();
|
||||
if (arguments.classpath != null) {
|
||||
for (String element : Splitter.on(File.pathSeparatorChar).split(arguments.classpath)) {
|
||||
classpath.add(new File(element));
|
||||
}
|
||||
}
|
||||
return classpath;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,10 @@ public class ReplFromTerminal {
|
||||
|
||||
private final ConsoleReader consoleReader;
|
||||
|
||||
public ReplFromTerminal(@NotNull final Disposable disposable, @NotNull final CompilerDependencies compilerDependencies) {
|
||||
final List<File> extraClasspath = Collections.<File>emptyList();
|
||||
public ReplFromTerminal(
|
||||
@NotNull final Disposable disposable,
|
||||
@NotNull final CompilerDependencies compilerDependencies,
|
||||
@NotNull final List<File> extraClasspath) {
|
||||
new Thread("initialize-repl") {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -193,8 +195,8 @@ public class ReplFromTerminal {
|
||||
return Arrays.asList(command.split(" "));
|
||||
}
|
||||
|
||||
public static void run(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies) {
|
||||
new ReplFromTerminal(disposable, compilerDependencies).doRun();
|
||||
public static void run(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies, @NotNull List<File> extraClasspath) {
|
||||
new ReplFromTerminal(disposable, compilerDependencies, extraClasspath).doRun();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -94,6 +94,9 @@ public class ReplInterpreter {
|
||||
public ReplInterpreter(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies, @NotNull List<File> extraClasspath) {
|
||||
// TODO: add extraClasspath to jetCoreEnvironment
|
||||
jetCoreEnvironment = new JetCoreEnvironment(disposable, compilerDependencies);
|
||||
for (File pathElement : extraClasspath) {
|
||||
jetCoreEnvironment.addToClasspath(pathElement);
|
||||
}
|
||||
Project project = jetCoreEnvironment.getProject();
|
||||
trace = new BindingTraceContext();
|
||||
module = new ModuleDescriptor(Name.special("<repl>"));
|
||||
|
||||
Reference in New Issue
Block a user