aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java
diff options
context:
space:
mode:
authorThibault Gagnaux <thibault.gagnaux@bit.admin.ch>2021-07-07 17:21:33 +0200
committerThibault Gagnaux <thibault.gagnaux@bit.admin.ch>2021-07-07 17:21:33 +0200
commitcd5d39b867ad5435039d1a47244252078600ca0b (patch)
tree70fd7f74fc8d59fedeeff7923c4df5f217ec6cb5 /src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java
parent587d0943327c7bf26a6378c1a710b3b971102ea2 (diff)
downloadfrege-gradle-plugin-cd5d39b867ad5435039d1a47244252078600ca0b.tar.gz
frege-gradle-plugin-cd5d39b867ad5435039d1a47244252078600ca0b.tar.bz2
frege-gradle-plugin-cd5d39b867ad5435039d1a47244252078600ca0b.zip
Refactors tests
- Uses the builder pattern to simplify the creation of `build.gradle` test files. - Adds `gradlew clean test` github workflow
Diffstat (limited to 'src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java')
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java65
1 files changed, 0 insertions, 65 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java
deleted file mode 100644
index b3d08a1..0000000
--- a/src/main/java/ch/fhnw/thga/gradleplugins/SetupFregeCompilerTask.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package ch.fhnw.thga.gradleplugins;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.nio.channels.Channels;
-import java.nio.channels.FileChannel;
-import java.nio.channels.ReadableByteChannel;
-
-import org.gradle.api.DefaultTask;
-import org.gradle.api.GradleException;
-import org.gradle.api.file.DirectoryProperty;
-import org.gradle.api.file.RegularFile;
-import org.gradle.api.logging.Logger;
-import org.gradle.api.logging.Logging;
-import org.gradle.api.provider.Property;
-import org.gradle.api.provider.Provider;
-import org.gradle.api.tasks.Input;
-import org.gradle.api.tasks.Internal;
-import org.gradle.api.tasks.OutputFile;
-import org.gradle.api.tasks.TaskAction;
-
-public abstract class SetupFregeCompilerTask extends DefaultTask {
- public static final Logger LOGGER = Logging.getLogger(SetupFregeCompilerTask.class);
-
- private static final String FREGE_GITHUB_URL_PREFIX = "https://github.com/Frege/frege/releases/download";
-
- @Input
- public abstract Property<String> getFregeVersion();
-
- @Input
- public abstract Property<String> getFregeRelease();
-
- @Internal
- public abstract DirectoryProperty getFregeCompilerOutputDirectory();
-
- @Internal
- public Provider<String> getFregeVersionJarName() {
- return getFregeVersion().map(version -> "frege" + version + ".jar");
- }
-
- @Internal
- public Provider<String> getDownloadUrl() {
- return getFregeVersionJarName()
- .map(name -> String.join("/", FREGE_GITHUB_URL_PREFIX, getFregeRelease().get(), name));
- }
-
- @OutputFile
- public Provider<RegularFile> getFregeCompilerOutputPath() {
- return getFregeCompilerOutputDirectory().file(getFregeVersionJarName());
- }
-
- @TaskAction
- public void downloadFregeCompiler() {
- String fregeCompilerOutputPath = getFregeCompilerOutputPath().get().getAsFile().getAbsolutePath();
- try (ReadableByteChannel readChannel = Channels.newChannel(new URL(getDownloadUrl().get()).openStream());
- FileOutputStream fregeCompilerOutputStream = new FileOutputStream(fregeCompilerOutputPath);) {
- FileChannel writeChannel = fregeCompilerOutputStream.getChannel();
- writeChannel.transferFrom(readChannel, 0, Long.MAX_VALUE);
- LOGGER.lifecycle(String.format("Successfully downloaded %s to: %s", getFregeVersionJarName().get(), fregeCompilerOutputPath));
- } catch (IOException e) {
- throw new GradleException(e.getMessage());
- }
- }
-}