MCPcopy
hub / github.com/cli/cli / upgradeExtensions

Method upgradeExtensions

pkg/cmd/extension/manager.go:482–513  ·  view source on GitHub ↗
(exts []*Extension, force bool)

Source from the content-addressed store, hash-verified

480}
481
482func (m *Manager) upgradeExtensions(exts []*Extension, force bool) error {
483 var longestExt = slices.MaxFunc(exts, func(a, b *Extension) int {
484 return len(a.Name()) - len(b.Name())
485 })
486 var longestExtName = len(longestExt.Name())
487
488 var failed bool
489 for _, f := range exts {
490 fmt.Fprintf(m.io.Out, "[%*s]: ", longestExtName, f.Name())
491 currentVersion := displayExtensionVersion(f, f.CurrentVersion())
492 err := m.upgradeExtension(f, force)
493 if err != nil {
494 if !errors.Is(err, localExtensionUpgradeError) &&
495 !errors.Is(err, upToDateError) &&
496 !errors.Is(err, pinnedExtensionUpgradeError) {
497 failed = true
498 }
499 fmt.Fprintf(m.io.Out, "%s\n", err)
500 continue
501 }
502 latestVersion := displayExtensionVersion(f, f.LatestVersion())
503 if m.dryRunMode {
504 fmt.Fprintf(m.io.Out, "would have upgraded from %s to %s\n", currentVersion, latestVersion)
505 } else {
506 fmt.Fprintf(m.io.Out, "upgraded from %s to %s\n", currentVersion, latestVersion)
507 }
508 }
509 if failed {
510 return errors.New("some extensions failed to upgrade")
511 }
512 return nil
513}
514
515func (m *Manager) upgradeExtension(ext *Extension, force bool) error {
516 if ext.IsLocal() {

Callers 3

UpgradeMethod · 0.95

Calls 5

upgradeExtensionMethod · 0.95
displayExtensionVersionFunction · 0.85
NameMethod · 0.65
CurrentVersionMethod · 0.65
LatestVersionMethod · 0.65