From 1c2b0cab2dbb2aff4df380b23738f3ef3cfd178f Mon Sep 17 00:00:00 2001 From: Ben Firshman Date: Tue, 28 Jun 2022 14:34:25 -0700 Subject: [PATCH] Reset upgrade state when upgraded I made the update check display a message for #672 but the message doesn't reset when people upgrade. Signed-off-by: Ben Firshman --- pkg/update/state.go | 1 + pkg/update/update.go | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pkg/update/state.go b/pkg/update/state.go index 315ce61f12..e80c1c9caf 100644 --- a/pkg/update/state.go +++ b/pkg/update/state.go @@ -16,6 +16,7 @@ import ( type state struct { Message string `json:"message"` LastChecked time.Time `json:"lastChecked"` + Version string `json:"version"` } // loadState loads the update check state from disk, returning defaults if it does not exist diff --git a/pkg/update/update.go b/pkg/update/update.go index f76ae667f8..074c9253ab 100644 --- a/pkg/update/update.go +++ b/pkg/update/update.go @@ -26,15 +26,23 @@ func DisplayAndCheckForRelease() error { return fmt.Errorf("update check disabled") } - state, err := loadState() + s, err := loadState() if err != nil { return err } - if time.Since(state.LastChecked) > time.Hour { + + if s.Version != global.Version { + console.Debugf("Resetting update message because Cog has been upgraded") + if err := writeState(&state{Message: "", LastChecked: time.Now(), Version: global.Version}); err != nil { + return err + } + } + + if time.Since(s.LastChecked) > time.Hour { startCheckingForRelease() } - if state.Message != "" { - console.Info(state.Message) + if s.Message != "" { + console.Info(s.Message) console.Info("") } return nil @@ -50,7 +58,7 @@ func startCheckingForRelease() { if r == nil { break } - if err := writeState(&state{Message: r.Message, LastChecked: time.Now()}); err != nil { + if err := writeState(&state{Message: r.Message, LastChecked: time.Now(), Version: global.Version}); err != nil { console.Debugf("Failed to write state: %s", err) }