changed application versioning
Robert Ismo me@robertismo.com
Thu, 25 Jun 2026 20:00:49 -0500
5 files changed,
46 insertions(+),
17 deletions(-)
M
Makefile
→
Makefile
@@ -7,7 +7,10 @@ .PHONY: build macbuild dev clean
build: linux-amd64 windows-amd64 macbuild: darwin-universal + ./package-darwin.sh release: + rm -fr public/ + go-selfupdate build/bin/EMessage $(shell head -n 1 releases) cp install.sh public/install.sh cp build/appicon.png public/appicon.png scp -r public/* machinetele.com:/srv/www/updater.machinetele.com/EMessage/
M
app.go
→
app.go
@@ -45,15 +45,22 @@ Stdout()
app.ctx = ctx updater := &selfupdate.Updater{ CurrentVersion: app.GetVersion(), - ApiURL: "https://updater.machinetele.com", - BinURL: "https://updater.machinetele.com", + ApiURL: "https://updater.machinetele.com/", + BinURL: "https://updater.machinetele.com/", Dir: "update/", CmdName: app.GetTitle(), ForceCheck: true, CheckTime: 1, RandomizeTime: 0, - OnPreFetch: func() { - app.Log("Searching for updates...").Stdout().StatusLine() + OnPreFetch: func(u *selfupdate.Updater) { + app.Log( + "Searching for updates...", + ).Stdout().StatusLine() + app.Log( + "On %s and found %s.", + u.Info.Version, + u.CurrentVersion, + ).Stdout().StatusLine() }, OnUpdateAttempt: func() { app.Log("Found a new version! Attempting to update.").Stdout().StatusLine()
M
go-selfupdate/selfupdate/selfupdate.go
→
go-selfupdate/selfupdate/selfupdate.go
@@ -65,7 +65,7 @@ Version string
Sha256 []byte } OnSuccessfulUpdate func() // Optional function to run after an update has successfully taken place - OnPreFetch func() + OnPreFetch func(*Updater) OnUpdateAttempt func() // Optional: called when an update attempt begins (after info fetch, before patch/full fetch) OnUpdateFailure func(error) // Optional: called when an update fails with the error OnFinally func()@@ -185,9 +185,6 @@ func (u *Updater) Update() error {
if u.OnFinally != nil { defer u.OnFinally() } - if u.OnPreFetch != nil { - u.OnPreFetch() - } path, err := os.Executable() if err != nil { if u.OnUpdateFailure != nil {@@ -203,9 +200,15 @@
// go fetch latest updates manifest err = u.fetchInfo() if err != nil { + if u.OnUpdateFailure != nil { + u.OnUpdateFailure(err) + } return err } + if u.OnPreFetch != nil { + u.OnPreFetch(u) + } // we are on the latest version, nothing to do if u.Info.Version == u.CurrentVersion { return nil@@ -213,6 +216,9 @@ }
old, err := os.Open(path) if err != nil { + if u.OnUpdateFailure != nil { + u.OnUpdateFailure(err) + } return err } defer old.Close()@@ -252,9 +258,16 @@ old.Close()
err, errRecover := fromStream(bytes.NewBuffer(bin)) if errRecover != nil { - return fmt.Errorf("update and recovery errors: %q %q", err, errRecover) + err = fmt.Errorf("update and recovery errors: %q %q", err, errRecover) + if u.OnUpdateFailure != nil { + u.OnUpdateFailure(err) + } + return err } if err != nil { + if u.OnUpdateFailure != nil { + u.OnUpdateFailure(err) + } return err }
M
release.go
→
release.go
@@ -2,15 +2,15 @@ //go:build erelease
package main -import () +import ( + _ "embed" + "strings" +) + +//go:embed releases +var Versions string var ( EMessageRemoteServerAddress = "https://emessage.machinetele.com" - EMessageVersionHistory = []string{ - "prerelease.5", - "prerelease.4", - "prerelease.3", - "prerelease.2", - "prerelease.1", - } + EMessageVersionHistory = strings.Split(Versions, "\n") )
A
releases
@@ -0,0 +1,6 @@
+prerelease.6 +prerelease.5 +prerelease.4 +prerelease.3 +prerelease.2 +prerelease.1