This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 58e89420060 CAMEL-18526: camel-jbang - Did you mean 58e89420060 is described below commit 58e89420060eec9e028b6a3cb21ea2d3db95c18c Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Sep 20 07:25:13 2022 +0200 CAMEL-18526: camel-jbang - Did you mean --- .../jbang/core/commands/catalog/CatalogDoc.java | 36 ++++++++++++++++++++-- .../commands/catalog/KameletCatalogHelper.java | 5 +++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java index 8bde3d96b5d..93efa4747fd 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java @@ -31,6 +31,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog; import org.apache.camel.dsl.jbang.core.commands.CamelCommand; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; import org.apache.camel.main.download.MavenGav; +import org.apache.camel.main.util.SuggestSimilarHelper; import org.apache.camel.tooling.model.BaseOptionModel; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.DataFormatModel; @@ -111,9 +112,40 @@ public class CatalogDoc extends CamelCommand { } if (prefix == null) { - System.out.println("Camel resource: " + name + " not found"); + // guess if a kamelet + List<String> suggestions; + boolean kamelet = name.endsWith("-sink") || name.endsWith("-source") || name.endsWith("-action"); + if (kamelet) { + // kamelet names + suggestions = SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion), name); + } else { + // assume its a component + suggestions = SuggestSimilarHelper.didYouMean(catalog.findComponentNames(), name); + } + if (suggestions != null) { + String type = kamelet ? "kamelet" : "component"; + System.out.printf("Camel %s: %s not found. Did you mean? %s%n", type, name, String.join(", ", suggestions)); + } else { + System.out.println("Camel resource: " + name + " not found"); + } } else { - System.out.println("Camel " + prefix + ": " + name + " not found"); + List<String> suggestions = null; + if ("kamelet".equals(prefix)) { + suggestions = SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion), name); + } else if ("component".equals(prefix)) { + suggestions = SuggestSimilarHelper.didYouMean(catalog.findComponentNames(), name); + } else if ("dataformat".equals(prefix)) { + suggestions = SuggestSimilarHelper.didYouMean(catalog.findDataFormatNames(), name); + } else if ("language".equals(prefix)) { + suggestions = SuggestSimilarHelper.didYouMean(catalog.findLanguageNames(), name); + } else if ("other".equals(prefix)) { + suggestions = SuggestSimilarHelper.didYouMean(catalog.findOtherNames(), name); + } + if (suggestions != null) { + System.out.printf("Camel %s: %s not found. Did you mean? %s%n", prefix, name, String.join(", ", suggestions)); + } else { + System.out.printf("Camel %s: %s not found.%n", prefix, name); + } } return 1; } diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java index 7ce469f9528..cb94881056d 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java @@ -32,6 +32,11 @@ public final class KameletCatalogHelper { private KameletCatalogHelper() { } + public static List<String> findKameletNames(String version) throws Exception { + Map<String, Object> kamelets = loadKamelets(version); + return new ArrayList<>(kamelets.keySet()); + } + public static KameletModel createModel(Object kamelet, boolean all) throws Exception { KameletModel km = new KameletModel(); km.name = getName(kamelet);