From eb9be2a61552fd6dd6ea78d2889818eb344ee2c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Hohwiller?= Date: Thu, 28 Nov 2024 18:55:19 +0100 Subject: [PATCH] #758: improve status further (legacy settings warning) --- .../ide/commandlet/StatusCommandlet.java | 39 ++++++++++++++++--- .../AbstractEnvironmentVariables.java | 6 +++ .../ide/environment/EnvironmentVariables.java | 5 +++ .../EnvironmentVariablesPropertiesFile.java | 16 ++++++++ 4 files changed, 60 insertions(+), 6 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/StatusCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/StatusCommandlet.java index 7a8530fba..1513187fd 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/StatusCommandlet.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/StatusCommandlet.java @@ -4,6 +4,7 @@ import com.devonfw.tools.ide.context.GitContext; import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.environment.EnvironmentVariables; /** * {@link Commandlet} to print a status report about IDEasy. @@ -31,13 +32,29 @@ public String getName() { public void run() { this.context.logIdeHomeAndRootStatus(); - if (this.context.isOfflineMode()) { - this.context.warning("You have configured offline mode via CLI."); - } else if (this.context.isOnline()) { - this.context.success("You are online."); - } else { - this.context.warning("You are offline. Check your internet connection and potential proxy settings."); + logOnlineStatus(); + logSettingsGitStatus(); + logSettingsLegacyStatus(); + } + + private void logSettingsLegacyStatus() { + EnvironmentVariables variables = this.context.getVariables(); + boolean hasLegacyProperties = false; + while (variables != null) { + Path legacyProperties = variables.getLegacyPropertiesFilePath(); + if (legacyProperties != null) { + hasLegacyProperties = true; + this.context.warning("Found legacy properties {}", legacyProperties); + } + variables = variables.getParent(); } + if (hasLegacyProperties) { + this.context.warning( + "Your settings are outdated and contain legacy configurations. Please consider upgrading your settings:\nhttps://github.com/devonfw/IDEasy/blob/main/documentation/settings.adoc#upgrade"); + } + } + + private void logSettingsGitStatus() { Path settingsPath = this.context.getSettingsPath(); if (settingsPath != null) { GitContext gitContext = this.context.getGitContext(); @@ -53,4 +70,14 @@ public void run() { } } } + + private void logOnlineStatus() { + if (this.context.isOfflineMode()) { + this.context.warning("You have configured offline mode via CLI."); + } else if (this.context.isOnline()) { + this.context.success("You are online."); + } else { + this.context.warning("You are offline. Check your internet connection and potential proxy settings."); + } + } } diff --git a/cli/src/main/java/com/devonfw/tools/ide/environment/AbstractEnvironmentVariables.java b/cli/src/main/java/com/devonfw/tools/ide/environment/AbstractEnvironmentVariables.java index 8983a0166..52445bf7b 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/environment/AbstractEnvironmentVariables.java +++ b/cli/src/main/java/com/devonfw/tools/ide/environment/AbstractEnvironmentVariables.java @@ -73,6 +73,12 @@ public Path getPropertiesFilePath() { return null; } + @Override + public Path getLegacyPropertiesFilePath() { + + return null; + } + @Override public VariableSource getSource() { diff --git a/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariables.java b/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariables.java index 40339213c..de52a53e8 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariables.java +++ b/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariables.java @@ -118,6 +118,11 @@ default EnvironmentVariables getByType(EnvironmentVariablesType type) { */ Path getPropertiesFilePath(); + /** + * @return the {@link Path} to the {@link #LEGACY_PROPERTIES} if they exist for this {@link EnvironmentVariables} or {@code null} otherwise (does not exist). + */ + Path getLegacyPropertiesFilePath(); + /** * @return the {@link VariableSource} of this {@link EnvironmentVariables}. */ diff --git a/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariablesPropertiesFile.java b/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariablesPropertiesFile.java index 64e1d9cd6..877b43295 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariablesPropertiesFile.java +++ b/cli/src/main/java/com/devonfw/tools/ide/environment/EnvironmentVariablesPropertiesFile.java @@ -252,6 +252,22 @@ public Path getPropertiesFilePath() { return this.propertiesFilePath; } + @Override + public Path getLegacyPropertiesFilePath() { + + if (this.propertiesFilePath == null) { + return null; + } + if (this.propertiesFilePath.getFileName().toString().equals(LEGACY_PROPERTIES)) { + return this.propertiesFilePath; + } + Path legacyProperties = this.propertiesFilePath.getParent().resolve(LEGACY_PROPERTIES); + if (Files.exists(legacyProperties)) { + return legacyProperties; + } + return null; + } + @Override public String set(String name, String value, boolean export) {