in src/main/java/org/apache/netbeans/nbpackage/AbstractPackagerTask.java [389:425]
private void processMergeFromDirectory(Path sourceDir, Path imageDir,
Path rootDir) throws IOException {
String messageFile = context().isVerbose()
? NBPackage.MESSAGES.getString("message.mergingfile") : null;
String messageDir = context().isVerbose()
? NBPackage.MESSAGES.getString("message.mergingdir") : null;
try (var stream = Files.list(sourceDir)) {
var files = stream.sorted().collect(Collectors.toList());
for (Path file : files) {
if (Files.isDirectory(file)) {
String name = file.getFileName().toString();
Path dest;
if ("__ROOT".equals(name)) {
dest = rootDir;
} else {
dest = imageDir.resolve(name);
Files.createDirectories(dest);
}
if (messageDir != null) {
context().infoHandler().accept(MessageFormat.format(messageDir,
sourceDir.relativize(file),
imageDir.getParent().relativize(dest)));
}
FileUtils.copyFiles(file, dest);
} else {
Path dest = imageDir.resolve(file.getFileName());
if (messageFile != null) {
context().infoHandler().accept(MessageFormat.format(messageFile,
sourceDir.relativize(file),
imageDir.getParent().relativize(dest)));
}
Files.copy(file, dest, StandardCopyOption.COPY_ATTRIBUTES);
FileUtils.ensureWritable(dest);
}
}
}
}