Skip to content

Commit eda2106

Browse files
committed
upgrade: check if user can upgrade
1 parent 6e14dab commit eda2106

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

upgrade.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
)
1515

1616
type Upgrader interface {
17+
IsNewVersionAvailable(ctx context.Context, currentVersion string) (bool, error)
18+
// Upgrade upgrades the current binary to the latest version.
1719
Upgrade(ctx context.Context, currentVersion string) error
1820
}
1921

@@ -67,6 +69,25 @@ func NewUpgrader(owner string, repo string, executablePath string, opts ...Opt)
6769

6870
var ErrInvalidCheckSum = errors.New("invalid checksum")
6971

72+
func (u *upgrader) IsNewVersionAvailable(ctx context.Context, currentVersion string) (bool, error) {
73+
curr, err := version.NewVersion(currentVersion)
74+
if err != nil {
75+
return false, err
76+
}
77+
78+
releaseInfo, err := u.releaseGetter.GetLatestRelease(ctx)
79+
if err != nil {
80+
return false, err
81+
}
82+
83+
latest, err := version.NewVersion(releaseInfo.TagName)
84+
if err != nil {
85+
return false, err
86+
}
87+
88+
return latest.GreaterThan(curr), nil
89+
}
90+
7091
func (u *upgrader) Upgrade(ctx context.Context, currentVersion string) error {
7192
curr, err := version.NewVersion(currentVersion)
7293
if err != nil {

0 commit comments

Comments
 (0)