Skip to content

Commit 1b60619

Browse files
committed
chore: make JBang Catalog calls from CLI not fatal.
1 parent 68c2af1 commit 1b60619

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

independent-projects/tools/devtools-common/src/main/java/io/quarkus/cli/plugin/JBangCatalogService.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.quarkus.cli.plugin;
22

33
import java.nio.file.Path;
4+
import java.util.ArrayList;
45
import java.util.HashMap;
56
import java.util.List;
67
import java.util.Map;
@@ -22,6 +23,7 @@ public class JBangCatalogService extends CatalogService<JBangCatalog> {
2223
private final String fallbackCatalog;
2324
private final String[] remoteCatalogs;
2425
private final JBangSupport jbang;
26+
private final MessageWriter output;
2527

2628
public JBangCatalogService(MessageWriter output) {
2729
this(output, "quarkus-", "quarkusio");
@@ -38,6 +40,7 @@ public JBangCatalogService(boolean interactiveMode, MessageWriter output, String
3840
this.fallbackCatalog = fallbackCatalog;
3941
this.remoteCatalogs = remoteCatalogs;
4042
this.jbang = new JBangSupport(interactiveMode, output);
43+
this.output = output;
4144
}
4245

4346
public boolean ensureJBangIsInstalled() {
@@ -92,7 +95,12 @@ public JBangCatalog readCombinedCatalog(Optional<Path> projectDir, Optional<Path
9295
Optional<String> catalogFile = projectDir
9396
.map(d -> RELATIVE_PLUGIN_CATALOG.apply(d).toAbsolutePath().toString());
9497
catalogFile.ifPresent(f -> {
95-
List<String> lines = jbang.execute("alias", "list", "-f", f, "--verbose");
98+
List<String> lines = new ArrayList<>();
99+
try {
100+
lines.addAll(jbang.execute("alias", "list", "-f", f, "--verbose"));
101+
} catch (Exception e) {
102+
output.debug("Failed to read catalog file: " + f + ". Ignoring.");
103+
}
96104
aliases.putAll(readAliases(lines));
97105
});
98106
});
@@ -116,14 +124,25 @@ public JBangCatalog readCombinedCatalog(Optional<Path> projectDir, Optional<Path
116124
}
117125

118126
private Map<String, JBangAlias> listAliases(JBangSupport jbang, String remoteCatalog) {
119-
List<String> lines = jbang.execute("alias", "list", "--verbose", remoteCatalog);
127+
List<String> lines = new ArrayList<>();
128+
try {
129+
lines.addAll(jbang.execute("alias", "list", "--verbose", remoteCatalog));
130+
} catch (Exception e) {
131+
this.output.debug("Failed to list aliases from remote catalog: " + remoteCatalog + ". Ignorning.");
132+
}
133+
120134
return readAliases(lines);
121135
}
122136

123137
private Map<String, JBangAlias> listAliasesOrFallback(JBangSupport jbang, String fallbackCatalog) {
124-
List<String> localCatalogs = jbang.execute("catalog", "list").stream()
125-
.map(l -> l.substring(0, l.indexOf(" ")))
126-
.collect(Collectors.toList());
138+
List<String> localCatalogs = new ArrayList<>();
139+
try {
140+
for (String catalog : jbang.execute("catalog", "list")) {
141+
localCatalogs.add(catalog.substring(0, catalog.indexOf(" ")));
142+
}
143+
} catch (Exception e) {
144+
this.output.debug("Failed to list jbang catalogs. Ignoring.");
145+
}
127146

128147
//If there are locally installed catalogs, then go through every single one of them
129148
//and collect the aliases.

0 commit comments

Comments
 (0)