From 2bda8bb7db75b34b2d57e4d9d79a87453cef2da1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 16 Mar 2025 19:23:07 +0100 Subject: [PATCH] quick-e2e: Add CopyFileService to handle file copying and update Main class to utilize it --- .../main/java/de/oliver/quicke2e/Main.java | 6 +++ .../steps/copyFile/CopyFileService.java | 40 +++++++++++++++++++ .../quicke2e/steps/gradle/GradleService.java | 3 +- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/copyFile/CopyFileService.java diff --git a/tools/quick-e2e/src/main/java/de/oliver/quicke2e/Main.java b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/Main.java index b554781b..2fd141f1 100644 --- a/tools/quick-e2e/src/main/java/de/oliver/quicke2e/Main.java +++ b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/Main.java @@ -2,6 +2,7 @@ package de.oliver.quicke2e; import de.oliver.quicke2e.config.Configuration; import de.oliver.quicke2e.config.Context; +import de.oliver.quicke2e.steps.copyFile.CopyFileService; import de.oliver.quicke2e.steps.eula.EulaService; import de.oliver.quicke2e.steps.gradle.GradleService; import de.oliver.quicke2e.steps.ops.OPsService; @@ -40,6 +41,11 @@ public class Main { GradleService gradle = new GradleService(); gradle.runTask(":plugins:fancyholograms:shadowJar"); + gradle.runTask(":plugins:fancyvisuals:shadowJar"); + + CopyFileService copyFile = new CopyFileService(); + copyFile.copyFile(context, "plugins/fancyholograms/build/libs", "FancyHolograms-.*\\.jar", "plugins"); + copyFile.copyFile(context, "plugins/fancyvisuals/build/libs", "FancyVisuals-.*\\.jar", "plugins"); StartServerService startServer = new StartServerService(); startServer.startServer(context); diff --git a/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/copyFile/CopyFileService.java b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/copyFile/CopyFileService.java new file mode 100644 index 00000000..e5a7af72 --- /dev/null +++ b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/copyFile/CopyFileService.java @@ -0,0 +1,40 @@ +package de.oliver.quicke2e.steps.copyFile; + +import de.oliver.quicke2e.config.Context; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.Optional; +import java.util.regex.Pattern; + +public class CopyFileService { + + public void copyFile(Context context, String sourceFolder, String source, String destination) { + String realSource = source; + + if (source.contains("*")) { + Pattern pattern = Pattern.compile(source); + try { + Optional first = Files.walk(Path.of(sourceFolder)) + .filter(Files::isRegularFile) + .filter(path -> pattern.matcher(path.getFileName().toString()).matches()) + .findFirst(); + if (first.isPresent()) { + realSource = first.get().toString(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + Path target = context.serverEnvPath().resolve(destination + "/" + Path.of(realSource).getFileName()); + + try { + Files.copy(Path.of(realSource), target, StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/gradle/GradleService.java b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/gradle/GradleService.java index 9c6f6f53..6488672c 100644 --- a/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/gradle/GradleService.java +++ b/tools/quick-e2e/src/main/java/de/oliver/quicke2e/steps/gradle/GradleService.java @@ -14,7 +14,8 @@ public class GradleService { processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT); try { - processBuilder.start(); + Process process = processBuilder.start(); + process.waitFor(); } catch (Exception e) { e.printStackTrace(); }