Skip to content

Commit 5922027

Browse files
authored
Create parent directories if it doesn't exists (#976)
1 parent 5763130 commit 5922027

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

buildSrc/src/main/java/com/uber/okbuck/core/dependency/exporter/JsonDependencyExporter.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.io.IOException;
1212
import java.nio.charset.StandardCharsets;
1313
import java.nio.file.Files;
14+
import java.nio.file.Path;
1415
import java.nio.file.Paths;
1516
import java.util.Set;
1617
import java.util.stream.Collectors;
@@ -25,6 +26,14 @@ public JsonDependencyExporter(ExportDependenciesExtension exportDependenciesExte
2526
this.exportDependenciesExtension = exportDependenciesExtension;
2627
}
2728

29+
private static void createParent(Path path){
30+
try{
31+
Files.createDirectories(path.getParent());
32+
} catch (IOException e) {
33+
throw new ExporterException(e);
34+
}
35+
}
36+
2837
@Override
2938
public void export(Set<ExternalDependency> dependencies) {
3039
if (!exportDependenciesExtension.isEnabled()) {
@@ -38,10 +47,12 @@ public void export(Set<ExternalDependency> dependencies) {
3847
.collect(Collectors.toSet());
3948

4049
Gson gson = new GsonBuilder().setPrettyPrinting().create();
50+
String file = exportDependenciesExtension.getFile();
51+
Path path = Paths.get(file);
52+
createParent(path);
4153
try (BufferedWriter writer =
42-
Files.newBufferedWriter(
43-
Paths.get(exportDependenciesExtension.getFile()), StandardCharsets.UTF_8)) {
44-
LOG.info("Exporting dependencies to JSON at " + exportDependenciesExtension.getFile());
54+
Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
55+
LOG.info("Exporting dependencies to JSON at " + file);
4556
gson.toJson(dependencyModels, writer);
4657
} catch (IOException e) {
4758
throw new ExporterException(e);

0 commit comments

Comments
 (0)