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

Method upgradeExtensions

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

Source from the content-addressed store, hash-verified

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