aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java')
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java50
1 files changed, 7 insertions, 43 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
index 9541861..81da1cd 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java
@@ -1,55 +1,19 @@
package ch.fhnw.thga.gradleplugins;
-import javax.inject.Inject;
-
import org.gradle.api.DefaultTask;
-import org.gradle.api.file.DirectoryProperty;
-import org.gradle.api.file.FileCollection;
-import org.gradle.api.file.RegularFileProperty;
-import org.gradle.api.logging.Logger;
-import org.gradle.api.logging.Logging;
-import org.gradle.api.model.ObjectFactory;
-import org.gradle.api.provider.Property;
-import org.gradle.api.provider.Provider;
-import org.gradle.api.tasks.Input;
-import org.gradle.api.tasks.InputDirectory;
-import org.gradle.api.tasks.InputFile;
-import org.gradle.api.tasks.Internal;
-import org.gradle.api.tasks.JavaExec;
+import org.gradle.api.file.ConfigurableFileCollection;
+import org.gradle.api.tasks.InputFiles;
import org.gradle.api.tasks.TaskAction;
public abstract class ReplFregeTask extends DefaultTask {
- public static final Logger LOGGER = Logging.getLogger(SetupFregeTask.class);
public static final String REPL_MAIN_CLASS = "frege.repl.FregeRepl";
- private final JavaExec javaExec;
-
- @InputFile
- public abstract RegularFileProperty getFregeCompilerJar();
-
- @InputDirectory
- public abstract DirectoryProperty getFregeOutputDir();
-
- @Input
- public abstract Property<String> getFregeDependencies();
-
- @Internal
- public final Provider<FileCollection> getClasspath() {
- return getFregeDependencies().map(depsClasspath -> {
- return depsClasspath.isEmpty() ? getProject().files(getFregeCompilerJar(), getFregeOutputDir())
- : getProject().files(getFregeCompilerJar(), getFregeOutputDir(), depsClasspath);
- });
- }
-
- @Inject
- public ReplFregeTask(ObjectFactory objectFactory) {
- javaExec = objectFactory.newInstance(JavaExec.class);
- }
+ @InputFiles
+ public abstract ConfigurableFileCollection getFregeClasspath();
@TaskAction
- public void startFregeRepl() {
- javaExec.setStandardInput(System.in);
- javaExec.getMainClass().set(REPL_MAIN_CLASS);
- javaExec.setClasspath(getClasspath().get()).exec();
+ public void printStartFregeReplCommand() {
+ System.out.println("Execute the following command to start the Frege Repl:");
+ System.out.println(String.format("java -cp %s %s", getFregeClasspath().getAsPath(), REPL_MAIN_CLASS));
}
}