Change summary
internal/config/provider.go | 6 +++++-
internal/ui/dialog/models.go | 15 ++++++---------
2 files changed, 11 insertions(+), 10 deletions(-)
Detailed changes
@@ -145,11 +145,15 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
var errs []error
providers := csync.NewSlice[catwalk.Provider]()
autoupdate := !cfg.Options.DisableProviderAutoUpdate
+ customProvidersOnly := cfg.Options.DisableDefaultProviders
ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second)
defer cancel()
wg.Go(func() {
+ if customProvidersOnly {
+ return
+ }
catwalkURL := cmp.Or(os.Getenv("CATWALK_URL"), defaultCatwalkURL)
client := catwalk.NewWithURL(catwalkURL)
path := cachePathFor("providers")
@@ -165,7 +169,7 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
})
wg.Go(func() {
- if !hyper.Enabled() {
+ if customProvidersOnly || !hyper.Enabled() {
return
}
path := cachePathFor("hyper")
@@ -14,7 +14,6 @@ import (
"github.com/charmbracelet/crush/internal/ui/common"
"github.com/charmbracelet/crush/internal/ui/util"
uv "github.com/charmbracelet/ultraviolet"
- xslice "github.com/charmbracelet/x/exp/slice"
)
// ModelType represents the type of model to select.
@@ -143,14 +142,12 @@ func NewModels(com *common.Common, isOnboarding bool) (*Models, error) {
)
m.keyMap.Close = CloseKey
- m.providers = slices.Collect(
- xslice.Map(
- com.Config().Providers.Seq(),
- func(pc config.ProviderConfig) catwalk.Provider {
- return pc.ToProvider()
- },
- ),
- )
+ var err error
+ m.providers, err = config.Providers(m.com.Config())
+ if err != nil {
+ return nil, fmt.Errorf("failed to get providers: %w", err)
+ }
+
if err := m.setProviderItems(); err != nil {
return nil, fmt.Errorf("failed to set provider items: %w", err)
}