diff options
author | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-11-24 10:27:00 +0100 |
---|---|---|
committer | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-11-24 10:27:00 +0100 |
commit | 1f13c769f57d4670cee462b6cf741efb5f5a8cd6 (patch) | |
tree | 8f701a527ec89459f400fffd3dba8632da29fc8d /src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java | |
parent | 4f287790c285a1503bc05d75e1561de122f9a79e (diff) | |
download | frege-gradle-plugin-1f13c769f57d4670cee462b6cf741efb5f5a8cd6.tar.gz frege-gradle-plugin-1f13c769f57d4670cee462b6cf741efb5f5a8cd6.tar.bz2 frege-gradle-plugin-1f13c769f57d4670cee462b6cf741efb5f5a8cd6.zip |
feat: adds `replFrege` taskf-repl-task
Diffstat (limited to 'src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java')
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java index d27816c..41ac2a3 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java @@ -4,14 +4,17 @@ 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.tasks.TaskAction; import org.gradle.api.tasks.options.Option; @@ -30,6 +33,17 @@ public abstract class RunFregeTask extends DefaultTask { @Option(option = "mainModule", description = "The full name of the Frege module with a main function, e.g. 'my.mod.Name'") public abstract Property<String> getMainModule(); + @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 RunFregeTask(ObjectFactory objectFactory) { javaExec = objectFactory.newInstance(JavaExec.class); @@ -38,6 +52,6 @@ public abstract class RunFregeTask extends DefaultTask { @TaskAction public void runFrege() { javaExec.getMainClass().set(getMainModule()); - javaExec.setClasspath(getProject().files(getFregeCompilerJar(), getFregeOutputDir())).exec(); + javaExec.setClasspath(getClasspath().get()).exec(); } } |