From ec2829c1c40ead082e89004c93140fd17cd281f9 Mon Sep 17 00:00:00 2001 From: mdrakos Date: Tue, 24 Sep 2024 14:54:39 -0700 Subject: [PATCH] Try to always set namespace when suggesting --- internal/runners/install/rationalize.go | 29 ++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/internal/runners/install/rationalize.go b/internal/runners/install/rationalize.go index be4a6d3a5d..40d5954310 100644 --- a/internal/runners/install/rationalize.go +++ b/internal/runners/install/rationalize.go @@ -61,9 +61,32 @@ func (i *Install) rationalizeError(rerr *error) { } func (i *Install) getSuggestions(req *requirement, languages []model.Language) ([]string, error) { - ingredients, err := model.SearchIngredients(req.Requested.Namespace, req.Requested.Name, false, nil, i.prime.Auth()) - if err != nil { - return []string{}, locale.WrapError(err, "err_package_ingredient_search", "Failed to resolve ingredient named: {{.V0}}", req.Requested.Name) + var namespaces []string + + if req.Requested.Namespace == "" { + for _, language := range languages { + var ns string + switch i.nsType { + case model.NamespacePackage: + ns = model.NewNamespacePackage(language.Name).String() + case model.NamespaceBundle: + ns = model.NewNamespaceBundle(language.Name).String() + default: + continue + } + namespaces = append(namespaces, ns) + } + } else { + namespaces = []string{req.Requested.Namespace} + } + + ingredients := make([]*model.IngredientAndVersion, 0) + for _, namespace := range namespaces { + results, err := model.SearchIngredients(namespace, req.Requested.Name, false, nil, i.prime.Auth()) + if err != nil { + return nil, locale.WrapError(err, "err_package_ingredient_search", "Failed to resolve ingredient named: {{.V0}}", req.Requested.Name) + } + ingredients = append(ingredients, results...) } // Filter out irrelevant ingredients