all repos — emessage @ 457f9446562136b2f89323ac7b756af10837b3c0

The EMessage email client

changed application versioning
Robert Ismo me@robertismo.com
Thu, 25 Jun 2026 20:00:49 -0500
commit

457f9446562136b2f89323ac7b756af10837b3c0

parent

518dd3b2547968ee07f978d78bb6ac2f9af5fbb2

5 files changed, 46 insertions(+), 17 deletions(-)

jump to
M MakefileMakefile

@@ -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.goapp.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.gogo-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.gorelease.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