Skip to content

Commit 9a57a74

Browse files
committed
devonfw#913: Added support for SquirrelSQL
1 parent c993397 commit 9a57a74

File tree

5 files changed

+80
-1
lines changed

5 files changed

+80
-1
lines changed

cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.devonfw.tools.ide.tool.pgadmin.PgAdmin;
3636
import com.devonfw.tools.ide.tool.quarkus.Quarkus;
3737
import com.devonfw.tools.ide.tool.sonar.Sonar;
38+
import com.devonfw.tools.ide.tool.squirrelsql.SquirrelSql;
3839
import com.devonfw.tools.ide.tool.terraform.Terraform;
3940
import com.devonfw.tools.ide.tool.tomcat.Tomcat;
4041
import com.devonfw.tools.ide.tool.vscode.Vscode;
@@ -96,6 +97,7 @@ public CommandletManagerImpl(IdeContext context) {
9697
add(new Terraform(context));
9798
add(new Oc(context));
9899
add(new Quarkus(context));
100+
add(new SquirrelSql(context));
99101
add(new Kotlinc(context));
100102
add(new KotlincNative(context));
101103
add(new KubeCtl(context));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.devonfw.tools.ide.tool.squirrelsql;
2+
3+
import java.util.Set;
4+
5+
import com.devonfw.tools.ide.common.Tag;
6+
import com.devonfw.tools.ide.context.IdeContext;
7+
import com.devonfw.tools.ide.tool.LocalToolCommandlet;
8+
import com.devonfw.tools.ide.tool.ToolCommandlet;
9+
10+
/**
11+
* {@link ToolCommandlet} for SQuirreL SQL Client.
12+
*/
13+
public class SquirrelSql extends LocalToolCommandlet {
14+
15+
/**
16+
* The constructor.
17+
*
18+
* @param context the {@link IdeContext}.
19+
*/
20+
public SquirrelSql(IdeContext context) {
21+
22+
super(context, "squirrelsql", Set.of(Tag.DB));
23+
}
24+
25+
@Override
26+
public String getToolHelpArguments() {
27+
28+
return "--help";
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.devonfw.tools.ide.tool.squirrelsql;
2+
3+
import com.devonfw.tools.ide.url.model.folder.UrlVersion;
4+
import com.devonfw.tools.ide.url.updater.GithubUrlUpdater;
5+
import com.devonfw.tools.ide.version.VersionIdentifier;
6+
7+
/**
8+
* {@link GithubUrlUpdater} for SquirrelSQL
9+
*/
10+
public class SquirrelUrlUpdater extends GithubUrlUpdater {
11+
12+
public static final VersionIdentifier MIN_SQUIRRELSQL_VID = VersionIdentifier.of("4.4.0");
13+
14+
@Override
15+
protected String getTool() {
16+
17+
return "squirrelsql";
18+
}
19+
20+
@Override
21+
protected String getGithubOrganization() {
22+
23+
return "squirrel-sql-client";
24+
}
25+
26+
@Override
27+
protected String getGithubRepository() {
28+
29+
return "squirrel-sql-code";
30+
}
31+
32+
@Override
33+
protected void addVersion(UrlVersion urlVersion) {
34+
35+
VersionIdentifier vid = urlVersion.getVersionIdentifier();
36+
if (vid.compareVersion(MIN_SQUIRRELSQL_VID).isGreater()) {
37+
String baseUrl = "https://squirrel-sql.sourceforge.io/#installation";
38+
doAddVersion(urlVersion, baseUrl + ".zip");
39+
doAddVersion(urlVersion, baseUrl + ".tar.gz");
40+
}
41+
}
42+
43+
}
44+

cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import com.devonfw.tools.ide.tool.python.PythonUrlUpdater;
4343
import com.devonfw.tools.ide.tool.quarkus.QuarkusUrlUpdater;
4444
import com.devonfw.tools.ide.tool.sonar.SonarUrlUpdater;
45+
import com.devonfw.tools.ide.tool.squirrelsql.SquirrelUrlUpdater;
4546
import com.devonfw.tools.ide.tool.terraform.TerraformUrlUpdater;
4647
import com.devonfw.tools.ide.tool.tomcat.TomcatUrlUpdater;
4748
import com.devonfw.tools.ide.tool.vscode.VsCodeUrlUpdater;
@@ -69,7 +70,7 @@ public class UpdateManager extends AbstractProcessorWithTimeout {
6970
new JavaUrlUpdater(), new JenkinsUrlUpdater(), new JmcUrlUpdater(), new KotlincUrlUpdater(),
7071
new KotlincNativeUrlUpdater(), new LazyDockerUrlUpdater(), new MvnUrlUpdater(), new Mvn4UrlUpdater(),
7172
new NodeUrlUpdater(), new NpmUrlUpdater(), new OcUrlUpdater(), new PgAdminUrlUpdater(), new PipUrlUpdater(),
72-
new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(),
73+
new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), new SquirrelUrlUpdater(),
7374
new TerraformUrlUpdater(), new TomcatUrlUpdater(), new VsCodeUrlUpdater());
7475

7576
/**

cli/src/main/resources/nls/Help.properties

+2
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ cmd.sonar.detail=SonarQube is a platform for continuous inspection of code quali
9999
cmd.sonar.val.command=Action to perform (START|STOP|ANALYZE)
100100
cmd.status=Prints the status report about your IDEasy.
101101
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'.
102+
cmd.squirrelsql=Tool commandlet for SquirelSql.
103+
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
102104
cmd.terraform=Tool commandlet for Terraform.
103105
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
104106
cmd.tomcat=Tool commandlet for Tomcat

0 commit comments

Comments
 (0)