MCPcopy Create free account
hub / github.com/cli/cli / upgradeExtensions

Method upgradeExtensions

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

Source from the content-addressed store, hash-verified

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