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

devonfw / IDEasy / 9808947434

05 Jul 2024 01:16PM UTC coverage: 61.755% (-0.04%) from 61.798%
9808947434

push

github

web-flow
#396: Display the tools help output on 'ide help <tool>'  (#434)

1987 of 3535 branches covered (56.21%)

Branch coverage included in aggregate %.

5276 of 8226 relevant lines covered (64.14%)

2.81 hits per line

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

95.65
cli/src/main/java/com/devonfw/tools/ide/tool/npm/Npm.java
1
package com.devonfw.tools.ide.tool.npm;
2

3
import com.devonfw.tools.ide.common.Tag;
4
import com.devonfw.tools.ide.context.IdeContext;
5
import com.devonfw.tools.ide.io.FileAccess;
6
import com.devonfw.tools.ide.tool.LocalToolCommandlet;
7
import com.devonfw.tools.ide.tool.ToolCommandlet;
8
import com.devonfw.tools.ide.tool.node.Node;
9

10
import java.nio.file.Path;
11
import java.util.Set;
12

13
/**
14
 * {@link ToolCommandlet} for <a href="https://www.npmjs.com/">npm</a>.
15
 */
16
public class Npm extends LocalToolCommandlet {
17

18
  /**
19
   * The constructor.
20
   *
21
   * @param context the {@link IdeContext}.
22
   */
23
  public Npm(IdeContext context) {
24

25
    super(context, "npm", Set.of(Tag.JAVA_SCRIPT, Tag.BUILD));
7✔
26
  }
1✔
27

28
  @Override
29
  public boolean install(boolean silent) {
30

31
    getCommandlet(Node.class).install();
6✔
32
    return super.doInstall(silent);
4✔
33
  }
34

35
  protected void postExtract(Path extractedDir) {
36

37
    FileAccess fileAccess = context.getFileAccess();
4✔
38
    if (context.getSystemInfo().isWindows()) {
5✔
39
      Path nodeHomePath = this.context.getSoftwarePath().resolve("node/");
6✔
40
      Path npmBinBath = nodeHomePath.resolve("node_modules/npm/bin/");
4✔
41
      String npm = "npm";
2✔
42
      String npx = "npx";
2✔
43
      String cmd = ".cmd";
2✔
44

45
      fileAccess.delete(nodeHomePath.resolve(npm));
5✔
46
      fileAccess.delete(nodeHomePath.resolve(npm + cmd));
7✔
47
      fileAccess.delete(nodeHomePath.resolve(npx));
5✔
48
      fileAccess.delete(nodeHomePath.resolve(npx + cmd));
7✔
49

50
      fileAccess.copy(npmBinBath.resolve(npm), nodeHomePath);
6✔
51
      fileAccess.copy(npmBinBath.resolve(npm + cmd), nodeHomePath);
8✔
52
      fileAccess.copy(npmBinBath.resolve(npx), nodeHomePath);
6✔
53
      fileAccess.copy(npmBinBath.resolve(npx + cmd), nodeHomePath);
8✔
54
    }
55
  }
1✔
56

57
  @Override
58
  public String getToolHelpArguments() {
59

60
    return "help";
×
61
  }
62
}
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