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

devonfw / IDEasy / 15217656699

23 May 2025 07:22PM UTC coverage: 67.562% (-0.3%) from 67.89%
15217656699

push

github

web-flow
#1332: fixed bug pattern, proper Step usage, allow running tool if plugin failed (#1334)

Co-authored-by: jan-vcapgemini <59438728+jan-vcapgemini@users.noreply.github.com>

3151 of 5064 branches covered (62.22%)

Branch coverage included in aggregate %.

8048 of 11512 relevant lines covered (69.91%)

3.07 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.ProcessContext;
11
import com.devonfw.tools.ide.step.Step;
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.tool.repository.ToolRepository;
16
import com.devonfw.tools.ide.version.VersionIdentifier;
17

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

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

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

33
  @Override
34
  public boolean install(boolean silent, ProcessContext processContext, Step step) {
35

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

43
  private List<PackageManagerCommand> getPackageManagerCommandsInstall() {
44

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

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

61
  @Override
62
  public void uninstall() {
63

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

71
  private List<PackageManagerCommand> getPackageManagerCommandsUninstall() {
72

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

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

78
    return pmCommands;
×
79
  }
80

81
  @Override
82
  protected String getBinaryName() {
83

84
    return "pgadmin4";
×
85
  }
86
}
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