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

Method upgradeExtensions

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

Source from the content-addressed store, hash-verified

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