From 684be05fe802497d85c5a3d3dff108aad5f6564a Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:13:14 +0100 Subject: [PATCH] Move generated dat files instead of copying and then deleting --- .../hhu/stups/sablecc/gradle/SableCCTask.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/hhu/stups/sablecc/gradle/SableCCTask.java b/src/main/java/de/hhu/stups/sablecc/gradle/SableCCTask.java index 68bdad5..27466f9 100644 --- a/src/main/java/de/hhu/stups/sablecc/gradle/SableCCTask.java +++ b/src/main/java/de/hhu/stups/sablecc/gradle/SableCCTask.java @@ -127,16 +127,19 @@ public abstract class SableCCTask extends SourceTask { }); // Move generated dat files from Java source directory to resources directory. - this.getFs().copy(spec -> { - spec.from(destinationJavaPath); - spec.into(destinationResourcesPath); - spec.include("**/*.dat"); - }); - this.getFs().delete(spec -> { - ConfigurableFileTree fileTree = this.objectFactory.fileTree(); - fileTree.from(destinationJavaPath); - fileTree.include("**/*.dat"); - spec.delete(fileTree); - }); + ConfigurableFileTree datFiles = this.objectFactory.fileTree(); + datFiles.from(destinationJavaPath); + datFiles.include("**/*.dat"); + for (File datFile : datFiles) { + Path sourcePath = datFile.toPath(); + assert sourcePath.isAbsolute(); + Path relativePath = destinationJavaPath.relativize(sourcePath); + Path destinationPath = destinationResourcesPath.resolve(relativePath); + assert destinationPath.isAbsolute(); + if (destinationPath.getParent() != null) { + Files.createDirectories(destinationPath.getParent()); + } + Files.move(sourcePath, destinationPath); + } } } -- GitLab