1
1
package io .quarkus .cli .plugin ;
2
2
3
3
import java .nio .file .Path ;
4
+ import java .util .ArrayList ;
4
5
import java .util .HashMap ;
5
6
import java .util .List ;
6
7
import java .util .Map ;
@@ -22,6 +23,7 @@ public class JBangCatalogService extends CatalogService<JBangCatalog> {
22
23
private final String fallbackCatalog ;
23
24
private final String [] remoteCatalogs ;
24
25
private final JBangSupport jbang ;
26
+ private final MessageWriter output ;
25
27
26
28
public JBangCatalogService (MessageWriter output ) {
27
29
this (output , "quarkus-" , "quarkusio" );
@@ -38,6 +40,7 @@ public JBangCatalogService(boolean interactiveMode, MessageWriter output, String
38
40
this .fallbackCatalog = fallbackCatalog ;
39
41
this .remoteCatalogs = remoteCatalogs ;
40
42
this .jbang = new JBangSupport (interactiveMode , output );
43
+ this .output = output ;
41
44
}
42
45
43
46
public boolean ensureJBangIsInstalled () {
@@ -92,7 +95,12 @@ public JBangCatalog readCombinedCatalog(Optional<Path> projectDir, Optional<Path
92
95
Optional <String > catalogFile = projectDir
93
96
.map (d -> RELATIVE_PLUGIN_CATALOG .apply (d ).toAbsolutePath ().toString ());
94
97
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
+ }
96
104
aliases .putAll (readAliases (lines ));
97
105
});
98
106
});
@@ -116,14 +124,25 @@ public JBangCatalog readCombinedCatalog(Optional<Path> projectDir, Optional<Path
116
124
}
117
125
118
126
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
+
120
134
return readAliases (lines );
121
135
}
122
136
123
137
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
+ }
127
146
128
147
//If there are locally installed catalogs, then go through every single one of them
129
148
//and collect the aliases.
0 commit comments