• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 11061200804

26 Sep 2024 10:27PM UTC coverage: 66.053% (-0.05%) from 66.107%
11061200804

push

github

web-flow
#593: #651: #564: #439: fixed bugs, refactored tool dependencies (#652)

2312 of 3848 branches covered (60.08%)

Branch coverage included in aggregate %.

6078 of 8854 relevant lines covered (68.65%)

3.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

8.0
cli/src/main/java/com/devonfw/tools/ide/tool/pgadmin/PgAdmin.java
1
package com.devonfw.tools.ide.tool.pgadmin;
2

3
import java.util.ArrayList;
4
import java.util.Arrays;
5
import java.util.List;
6
import java.util.Set;
7

8
import com.devonfw.tools.ide.common.Tag;
9
import com.devonfw.tools.ide.context.IdeContext;
10
import com.devonfw.tools.ide.process.EnvironmentContext;
11
import com.devonfw.tools.ide.repo.ToolRepository;
12
import com.devonfw.tools.ide.tool.GlobalToolCommandlet;
13
import com.devonfw.tools.ide.tool.PackageManager;
14
import com.devonfw.tools.ide.tool.PackageManagerCommand;
15
import com.devonfw.tools.ide.version.VersionIdentifier;
16

17
/**
18
 * {@link GlobalToolCommandlet} for <a href="https://www.pgadmin.org/">pgadmin</a>
19
 */
20
public class PgAdmin extends GlobalToolCommandlet {
21

22
  /**
23
   * The constructor.
24
   *
25
   * @param context the {@link IdeContext}.
26
   */
27
  public PgAdmin(IdeContext context) {
28

29
    super(context, "pgadmin", Set.of(Tag.DB, Tag.ADMIN));
7✔
30
  }
1✔
31

32
  @Override
33
  public boolean install(boolean silent, EnvironmentContext environmentContext) {
34

35
    if (this.context.getSystemInfo().isLinux()) {
×
36
      return runWithPackageManager(silent, getPackageManagerCommandsInstall());
×
37
    } else {
38
      return super.install(silent, environmentContext);
×
39
    }
40
  }
41

42
  private List<PackageManagerCommand> getPackageManagerCommandsInstall() {
43

44
    String edition = getConfiguredEdition();
×
45
    ToolRepository toolRepository = this.context.getDefaultToolRepository();
×
46
    VersionIdentifier configuredVersion = getConfiguredVersion();
×
47
    String resolvedVersion = toolRepository.resolveVersion(this.tool, edition, configuredVersion).toString();
×
48

49
    PackageManagerCommand packageManagerCommand = new PackageManagerCommand(PackageManager.APT, List.of(
×
50
        "curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | "
51
            + "sudo gpg --yes --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg",
52
        "sudo sh -c 'echo \"deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] "
53
            + "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main\" "
54
            + "> /etc/apt/sources.list.d/pgadmin4.list && apt update'", String.format(
×
55
            "sudo apt install -y --allow-downgrades pgadmin4=%1$s pgadmin4-server=%1$s pgadmin4-desktop=%1$s pgadmin4-web=%1$s",
56
            resolvedVersion)));
57
    return List.of(packageManagerCommand);
×
58
  }
59

60
  @Override
61
  public void uninstall() {
62

63
    if (this.context.getSystemInfo().isLinux()) {
×
64
      runWithPackageManager(false, getPackageManagerCommandsUninstall());
×
65
    } else {
66
      super.uninstall();
×
67
    }
68
  }
×
69

70
  private List<PackageManagerCommand> getPackageManagerCommandsUninstall() {
71

72
    List<PackageManagerCommand> pmCommands = new ArrayList<>();
×
73

74
    pmCommands.add(new PackageManagerCommand(PackageManager.APT,
×
75
        Arrays.asList("sudo apt -y autoremove pgadmin4 pgadmin4-server pgadmin4-desktop pgadmin4-web")));
×
76

77
    return pmCommands;
×
78
  }
79

80
  @Override
81
  protected String getBinaryName() {
82

83
    return "pgadmin4";
×
84
  }
85
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc