diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index ff688860a..8d867825e 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -42,6 +42,7 @@ import com.devonfw.tools.ide.tool.python.Python; import com.devonfw.tools.ide.tool.quarkus.Quarkus; import com.devonfw.tools.ide.tool.sonar.Sonar; +import com.devonfw.tools.ide.tool.squirrelsql.SquirrelSql; import com.devonfw.tools.ide.tool.terraform.Terraform; import com.devonfw.tools.ide.tool.tomcat.Tomcat; import com.devonfw.tools.ide.tool.vscode.Vscode; @@ -108,6 +109,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Terraform(context)); add(new Oc(context)); add(new Quarkus(context)); + add(new SquirrelSql(context)); add(new Kotlinc(context)); add(new KotlincNative(context)); add(new KubeCtl(context)); diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java new file mode 100644 index 000000000..ba8185ab7 --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java @@ -0,0 +1,30 @@ +package com.devonfw.tools.ide.tool.squirrelsql; + +import java.util.Set; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.tool.LocalToolCommandlet; +import com.devonfw.tools.ide.tool.ToolCommandlet; + +/** + * {@link ToolCommandlet} for SQuirreL SQL Client. + */ +public class SquirrelSql extends LocalToolCommandlet { + + /** + * The constructor. + * + * @param context the {@link IdeContext}. + */ + public SquirrelSql(IdeContext context) { + + super(context, "squirrelsql", Set.of(Tag.DB)); + } + + @Override + public String getToolHelpArguments() { + + return "--help"; + } +} diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java new file mode 100644 index 000000000..5fd6f970f --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java @@ -0,0 +1,44 @@ +package com.devonfw.tools.ide.tool.squirrelsql; + +import com.devonfw.tools.ide.url.model.folder.UrlVersion; +import com.devonfw.tools.ide.url.updater.GithubUrlUpdater; +import com.devonfw.tools.ide.version.VersionIdentifier; + +/** + * {@link GithubUrlUpdater} for SquirrelSQL + */ +public class SquirrelSqlUrlUpdater extends GithubUrlUpdater { + + public static final VersionIdentifier MIN_SQUIRRELSQL_VID = VersionIdentifier.of("4.4.0"); + + @Override + protected String getTool() { + + return "squirrelsql"; + } + + @Override + protected String getGithubOrganization() { + + return "squirrel-sql-client"; + } + + @Override + protected String getGithubRepository() { + + return "squirrel-sql-code"; + } + + @Override + protected void addVersion(UrlVersion urlVersion) { + + VersionIdentifier vid = urlVersion.getVersionIdentifier(); + if (vid.compareVersion(MIN_SQUIRRELSQL_VID).isGreater()) { + String baseUrl = "https://squirrel-sql.sourceforge.io/#installation"; + doAddVersion(urlVersion, baseUrl + ".zip"); + doAddVersion(urlVersion, baseUrl + ".tar.gz"); + } + } + +} + diff --git a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java index be8954257..5b7adc06d 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java +++ b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java @@ -42,6 +42,7 @@ import com.devonfw.tools.ide.tool.python.PythonUrlUpdater; import com.devonfw.tools.ide.tool.quarkus.QuarkusUrlUpdater; import com.devonfw.tools.ide.tool.sonar.SonarUrlUpdater; +import com.devonfw.tools.ide.tool.squirrelsql.SquirrelSqlUrlUpdater; import com.devonfw.tools.ide.tool.terraform.TerraformUrlUpdater; import com.devonfw.tools.ide.tool.tomcat.TomcatUrlUpdater; import com.devonfw.tools.ide.tool.vscode.VsCodeUrlUpdater; @@ -69,7 +70,7 @@ public class UpdateManager extends AbstractProcessorWithTimeout { new JavaUrlUpdater(), new JenkinsUrlUpdater(), new JmcUrlUpdater(), new KotlincUrlUpdater(), new KotlincNativeUrlUpdater(), new LazyDockerUrlUpdater(), new MvnUrlUpdater(), new Mvn4UrlUpdater(), new NodeUrlUpdater(), new NpmUrlUpdater(), new OcUrlUpdater(), new PgAdminUrlUpdater(), new PipUrlUpdater(), - new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), + new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), new SquirrelSqlUrlUpdater(), new TerraformUrlUpdater(), new TomcatUrlUpdater(), new VsCodeUrlUpdater()); /** diff --git a/cli/src/main/resources/nls/Help.properties b/cli/src/main/resources/nls/Help.properties index 3ab260764..cfac2df7b 100644 --- a/cli/src/main/resources/nls/Help.properties +++ b/cli/src/main/resources/nls/Help.properties @@ -99,6 +99,8 @@ cmd.sonar.detail=SonarQube is a platform for continuous inspection of code quali cmd.sonar.val.command=Action to perform (START|STOP|ANALYZE) cmd.status=Prints the status report about your IDEasy. cmd.status.detail=To check your IDE-status (e.g. duplicated or legacy variables) as well as potential information about updates to settings you should apply\nwith ide update, run the following command: 'ide status'. +cmd.squirrelsql=Tool commandlet for SquirrelSql. +cmd.squirrelsql.detail=SquirrelSQL is a universal SQL client that supports a variety of database management systems. It provides an intuitive interface for running SQL queries, browsing database objects, and managing database connections. Detailed documentation can be found at https://www.squirrelsql.org cmd.terraform=Tool commandlet for Terraform. cmd.terraform.detail=Terraform is an infrastructure as code tool for managing cloud resources. Detailed documentation can be found at https://www.terraform.io/docs/index.html cmd.tomcat=Tool commandlet for Tomcat diff --git a/cli/src/main/resources/nls/Help_de.properties b/cli/src/main/resources/nls/Help_de.properties index 0f2c10904..27917490e 100644 --- a/cli/src/main/resources/nls/Help_de.properties +++ b/cli/src/main/resources/nls/Help_de.properties @@ -99,6 +99,8 @@ cmd.sonar.detail=SonarQube ist eine Plattform für die kontinuierliche Code-Qual cmd.sonar.val.command=Auszuführende Aktion (START|STOP|ANALYZE) cmd.status=Gibt einen Statusbericht über IDEasy aus cmd.status.detail=Um den Status Ihrer IDE zu überprüfen (z.B. doppelte oder veraltete Variablen) sowie potenzielle Informationen über Updates zu den Einstellungen,\ndie Sie mit dem Befehl 'ide update' anwenden sollten, führen Sie den folgenden Befehl aus: 'ide status'. +cmd.squirrelsql=Werkzeug Kommando für SquirrelSQL. +cmd.squirrelsql.detail=SquirrelSQL ist ein universeller SQL-Client, der eine Vielzahl von Datenbankverwaltungssystemen unterstützt. Er bietet eine intuitive Benutzeroberfläche zum Ausführen von SQL-Abfragen, Durchsuchen von Datenbankobjekten und Verwalten von Datenbankverbindungen. Eine ausführliche Dokumentation finden Sie unter https://www.squirrelsql.org cmd.terraform=Werkzeug Kommando für Terraform. cmd.terraform.detail=Terraform ist ein Tool für Infrastructure as Code zur Verwaltung von Cloud-Ressourcen. Detaillierte Dokumentation ist zu finden unter https://www.terraform.io/docs/index.html cmd.tomcat=Werkzeug Kommando für Tomcat