From 4c75f493bbf76f3876c80abeda3f46abc0e03a24 Mon Sep 17 00:00:00 2001 From: DerDavidBohl Date: Wed, 15 Jan 2025 09:45:23 +0100 Subject: [PATCH] Stop not configured Deployments --- .../deployments/service/DeploymentsService.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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) {