diff options
Diffstat (limited to 'src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java')
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java new file mode 100644 index 0000000..2f619a5 --- /dev/null +++ b/src/main/java/ch/fhnw/thga/gradleplugins/RunFregeTask.java @@ -0,0 +1,41 @@ +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.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.tasks.Input; +import org.gradle.api.tasks.InputDirectory; +import org.gradle.api.tasks.InputFile; +import org.gradle.api.tasks.JavaExec; +import org.gradle.api.tasks.TaskAction; + +public abstract class RunFregeTask extends DefaultTask { + public static final Logger LOGGER = Logging.getLogger(SetupFregeTask.class); + private final JavaExec javaExec; + + @InputFile + public abstract RegularFileProperty getFregeCompilerJar(); + + @InputDirectory + public abstract DirectoryProperty getFregeOutputDir(); + + @Input + public abstract Property<String> getMainModule(); + + @Inject + public RunFregeTask(ObjectFactory objectFactory) { + javaExec = objectFactory.newInstance(JavaExec.class); + } + + @TaskAction + public void runFrege() { + javaExec.getMainClass().set(getMainModule()); + javaExec.setClasspath(getProject().files(getFregeCompilerJar(), getFregeOutputDir())).exec(); + } +} |