fix(GODT-3094): Clean up old update files on bridge startup.
This commit is contained in:
parent
1ac4e70115
commit
6cb233473a
|
@ -276,6 +276,9 @@ func run(c *cli.Context) error {
|
|||
b.PushError(bridge.ErrVaultCorrupt)
|
||||
}
|
||||
|
||||
// Remove old updates files
|
||||
b.RemoveOldUpdates()
|
||||
|
||||
// Start telemetry heartbeat process
|
||||
b.StartHeartbeat(b)
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ func newUpdater(locations *locations.Locations) (*updater.Updater, error) {
|
|||
}
|
||||
|
||||
return updater.NewUpdater(
|
||||
updater.NewInstaller(versioner.New(updatesDir)),
|
||||
versioner.New(updatesDir),
|
||||
verifier,
|
||||
constants.UpdateName,
|
||||
runtime.GOOS,
|
||||
|
|
|
@ -154,3 +154,7 @@ func (testUpdater *TestUpdater) GetVersionInfo(_ context.Context, _ updater.Down
|
|||
func (testUpdater *TestUpdater) InstallUpdate(_ context.Context, _ updater.Downloader, _ updater.VersionInfo) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (testUpdater *TestUpdater) RemoveOldUpdates() error {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -53,4 +53,5 @@ type Autostarter interface {
|
|||
type Updater interface {
|
||||
GetVersionInfo(context.Context, updater.Downloader, updater.Channel) (updater.VersionInfo, error)
|
||||
InstallUpdate(context.Context, updater.Downloader, updater.VersionInfo) error
|
||||
RemoveOldUpdates() error
|
||||
}
|
||||
|
|
|
@ -139,3 +139,9 @@ func (bridge *Bridge) installUpdate(ctx context.Context, job installJob) {
|
|||
}
|
||||
}, bridge.newVersionLock)
|
||||
}
|
||||
|
||||
func (bridge *Bridge) RemoveOldUpdates() {
|
||||
if err := bridge.updater.RemoveOldUpdates(); err != nil {
|
||||
logrus.WithError(err).Error("Remove old updates fails")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import (
|
|||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"github.com/ProtonMail/gopenpgp/v2/crypto"
|
||||
"github.com/ProtonMail/proton-bridge/v3/internal/versioner"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
@ -46,15 +47,17 @@ type Installer interface {
|
|||
}
|
||||
|
||||
type Updater struct {
|
||||
versioner *versioner.Versioner
|
||||
installer Installer
|
||||
verifier *crypto.KeyRing
|
||||
product string
|
||||
platform string
|
||||
}
|
||||
|
||||
func NewUpdater(installer Installer, verifier *crypto.KeyRing, product, platform string) *Updater {
|
||||
func NewUpdater(ver *versioner.Versioner, verifier *crypto.KeyRing, product, platform string) *Updater {
|
||||
return &Updater{
|
||||
installer: installer,
|
||||
versioner: ver,
|
||||
installer: NewInstaller(ver),
|
||||
verifier: verifier,
|
||||
product: product,
|
||||
platform: platform,
|
||||
|
@ -109,6 +112,10 @@ func (u *Updater) InstallUpdate(ctx context.Context, downloader Downloader, upda
|
|||
return nil
|
||||
}
|
||||
|
||||
func (u *Updater) RemoveOldUpdates() error {
|
||||
return u.versioner.RemoveOldVersions()
|
||||
}
|
||||
|
||||
// getVersionFileURL returns the URL of the version file.
|
||||
// For example:
|
||||
// - https://protonmail.com/download/bridge/version_linux.json
|
||||
|
|
Loading…
Reference in New Issue