X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=src%2Forg%2Fargeo%2Fbuild%2FMake.java;h=cfedf9a06912e5a74fcc4fd1ccd30315c5f81940;hb=4d2955f554f19e8f77eae527b5831d533eb8d27f;hp=70bf8b5c25f16f8bd3fbd2baaa1c95aebfbcb234;hpb=c598d183f0dc5bf97e23692925f653b20438df7c;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Make.java b/src/org/argeo/build/Make.java index 70bf8b5..cfedf9a 100644 --- a/src/org/argeo/build/Make.java +++ b/src/org/argeo/build/Make.java @@ -20,6 +20,7 @@ import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; +import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.Arrays; @@ -354,15 +355,15 @@ public class Make { if (uninstall) { // uninstall if (Files.exists(targetJarP)) { Files.delete(targetJarP); - Path targetParent = targetJarP.getParent(); - deleteEmptyParents(targetA2, targetParent); logger.log(DEBUG, "Removed " + targetJarP); count++; } + Path targetParent = targetJarP.getParent(); + deleteEmptyParents(targetA2, targetParent); } else { // install Files.createDirectories(targetJarP.getParent()); boolean update = Files.exists(targetJarP); - Files.copy(jarP, targetJarP); + Files.copy(jarP, targetJarP, StandardCopyOption.REPLACE_EXISTING); logger.log(DEBUG, (update ? "Updated " : "Installed ") + targetJarP); count++; } @@ -374,9 +375,10 @@ public class Make { void deleteEmptyParents(Path targetA2, Path targetParent) throws IOException { if (!Files.isDirectory(targetParent)) throw new IllegalArgumentException(targetParent + " must be a directory"); + boolean isA2target = Files.isSameFile(targetA2, targetParent); if (!Files.list(targetParent).iterator().hasNext()) { Files.delete(targetParent); - if (Files.isSameFile(targetA2, targetParent)) + if (isA2target) return;// stop after deleting A2 base deleteEmptyParents(targetA2, targetParent.getParent()); } @@ -506,6 +508,15 @@ public class Make { // Add all resources from src/ Files.walkFileTree(srcP, new SimpleFileVisitor() { + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + // skip directories ending with .js + // TODO find something more robust? + if (dir.getFileName().toString().endsWith(".js")) + return FileVisitResult.SKIP_SUBTREE; + return super.preVisitDirectory(dir, attrs); + } + @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (file.getFileName().toString().endsWith(".java")