diff --git a/src/main/java/org/davidbohl/dirigent/deployments/service/DeploymentsService.java b/src/main/java/org/davidbohl/dirigent/deployments/service/DeploymentsService.java index d32bfd1..fa1af67 100644 --- a/src/main/java/org/davidbohl/dirigent/deployments/service/DeploymentsService.java +++ b/src/main/java/org/davidbohl/dirigent/deployments/service/DeploymentsService.java @@ -54,16 +54,28 @@ public class DeploymentsService { for (File file : files) { if (file.isDirectory() && !deployments.stream().anyMatch(d -> d.name().equals(file.getName()))) { try { - new ProcessBuilder(composeCommand, "down") - .directory(file.getAbsoluteFile()) + List commandArgs = new java.util.ArrayList<>(Arrays.stream(composeCommand.split(" ")).toList()); + commandArgs.add("down"); + new ProcessBuilder(commandArgs) + .directory(file) .start() .waitFor(); + deleteDirectory(file); } catch (IOException | InterruptedException e) { throw new RuntimeException(e); } } } } + void deleteDirectory(File directoryToBeDeleted) { + File[] allContents = directoryToBeDeleted.listFiles(); + if (allContents != null) { + for (File file : allContents) { + deleteDirectory(file); + } + } + directoryToBeDeleted.delete(); + } private void deployAll(List deployments) {