|
@@ -8,7 +8,7 @@
|
|
|
package org.elasticsearch.gradle.internal;
|
|
|
|
|
|
import org.gradle.api.DefaultTask;
|
|
|
-import org.gradle.api.file.FileTree;
|
|
|
+import org.gradle.api.file.FileCollection;
|
|
|
import org.gradle.api.tasks.Input;
|
|
|
import org.gradle.api.tasks.InputFiles;
|
|
|
import org.gradle.api.tasks.Optional;
|
|
@@ -34,7 +34,7 @@ public class ConcatFilesTask extends DefaultTask {
|
|
|
}
|
|
|
|
|
|
/** List of files to concatenate */
|
|
|
- private FileTree files;
|
|
|
+ private FileCollection files;
|
|
|
|
|
|
/** line to add at the top of the target file */
|
|
|
private String headerLine;
|
|
@@ -43,12 +43,12 @@ public class ConcatFilesTask extends DefaultTask {
|
|
|
|
|
|
private List<String> additionalLines = new ArrayList<>();
|
|
|
|
|
|
- public void setFiles(FileTree files) {
|
|
|
+ public void setFiles(FileCollection files) {
|
|
|
this.files = files;
|
|
|
}
|
|
|
|
|
|
@InputFiles
|
|
|
- public FileTree getFiles() {
|
|
|
+ public FileCollection getFiles() {
|
|
|
return files;
|
|
|
}
|
|
|
|
|
@@ -83,13 +83,16 @@ public class ConcatFilesTask extends DefaultTask {
|
|
|
@TaskAction
|
|
|
public void concatFiles() throws IOException {
|
|
|
if (getHeaderLine() != null) {
|
|
|
+ getTarget().mkdirs();
|
|
|
Files.write(getTarget().toPath(), (getHeaderLine() + '\n').getBytes(StandardCharsets.UTF_8));
|
|
|
}
|
|
|
|
|
|
// To remove duplicate lines
|
|
|
LinkedHashSet<String> uniqueLines = new LinkedHashSet<>();
|
|
|
for (File f : getFiles()) {
|
|
|
- uniqueLines.addAll(Files.readAllLines(f.toPath(), StandardCharsets.UTF_8));
|
|
|
+ if (f.exists()) {
|
|
|
+ uniqueLines.addAll(Files.readAllLines(f.toPath(), StandardCharsets.UTF_8));
|
|
|
+ }
|
|
|
}
|
|
|
Files.write(getTarget().toPath(), uniqueLines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
|
|
|
|