From ade595c9338d9f262dd6d5ecedf440288934872c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Hohwiller?= Date: Tue, 20 Jan 2026 16:25:02 +0100 Subject: [PATCH] #1673: log error instead of throwing if installation version already present --- .../tools/ide/tool/IdeasyCommandlet.java | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/IdeasyCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/tool/IdeasyCommandlet.java index 6c6eeef75..f7d45adcc 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/IdeasyCommandlet.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/IdeasyCommandlet.java @@ -181,27 +181,28 @@ public void installIdeasy(Path cwd) { Path ideasySoftwarePath = idePath.resolve(IdeContext.FOLDER_SOFTWARE).resolve(MvnRepository.ID).resolve(IdeasyCommandlet.TOOL_NAME) .resolve(IdeasyCommandlet.TOOL_NAME); Path ideasyVersionPath = ideasySoftwarePath.resolve(IdeVersion.getVersionString()); + FileAccess fileAccess = this.context.getFileAccess(); if (Files.isDirectory(ideasyVersionPath)) { - throw new CliException("IDEasy is already installed at " + ideasyVersionPath + " - if your installation is broken, delete it manually and rerun setup!"); + this.context.error("IDEasy is already installed at {} - if your installation is broken, delete it manually and rerun setup!", ideasyVersionPath); + } else { + List installationArtifacts = new ArrayList<>(); + boolean success = true; + success &= addInstallationArtifact(cwd, "bin", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "functions", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "internal", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "system", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "IDEasy.pdf", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "setup", true, installationArtifacts); + success &= addInstallationArtifact(cwd, "setup.bat", false, installationArtifacts); + if (!success) { + throw new CliException("IDEasy release is inconsistent at " + cwd); + } + fileAccess.mkdirs(ideasyVersionPath); + for (Path installationArtifact : installationArtifacts) { + fileAccess.copy(installationArtifact, ideasyVersionPath); + } + this.context.writeVersionFile(IdeVersion.getVersionIdentifier(), ideasyVersionPath); } - FileAccess fileAccess = this.context.getFileAccess(); - List installationArtifacts = new ArrayList<>(); - boolean success = true; - success &= addInstallationArtifact(cwd, "bin", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "functions", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "internal", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "system", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "IDEasy.pdf", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "setup", true, installationArtifacts); - success &= addInstallationArtifact(cwd, "setup.bat", false, installationArtifacts); - if (!success) { - throw new CliException("IDEasy release is inconsistent at " + cwd); - } - fileAccess.mkdirs(ideasyVersionPath); - for (Path installationArtifact : installationArtifacts) { - fileAccess.copy(installationArtifact, ideasyVersionPath); - } - this.context.writeVersionFile(IdeVersion.getVersionIdentifier(), ideasyVersionPath); fileAccess.symlink(ideasyVersionPath, installationPath); addToShellRc(BASHRC, ideRoot, null); addToShellRc(ZSHRC, ideRoot, "autoload -U +X bashcompinit && bashcompinit");