mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-11 05:06:51 +00:00
GODT-1977: fix launcher for v2 to v3 updates.
This commit is contained in:
@ -50,6 +50,16 @@ func (v Versions) Swap(i, j int) {
|
||||
v[i], v[j] = v[j], v[i]
|
||||
}
|
||||
|
||||
func (v Versions) HasVersion(want *semver.Version) bool {
|
||||
for i := range v {
|
||||
if v[i].version.Equal(want) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func (v *Version) String() string {
|
||||
return fmt.Sprintf("%v", v.version)
|
||||
}
|
||||
@ -101,13 +111,7 @@ func (v *Version) VerifyFiles(kr *crypto.KeyRing) error {
|
||||
// GetExecutable returns the full path to the executable of the given version.
|
||||
// It returns an error if the executable is missing or does not have executable permissions set.
|
||||
func (v *Version) GetExecutable(name string) (string, error) {
|
||||
exe := filepath.Join(v.path, getExeName(name))
|
||||
|
||||
if !fileExists(exe) || !fileIsExecutable(exe) {
|
||||
return "", ErrNoExecutable
|
||||
}
|
||||
|
||||
return exe, nil
|
||||
return getExecutableInDirectory(name, v.path)
|
||||
}
|
||||
|
||||
// Remove removes this version directory.
|
||||
|
||||
@ -72,6 +72,10 @@ func (v *Versioner) ListVersions() (Versions, error) {
|
||||
// GetExecutableInDirectory returns the full path to the executable in the given directory, if present.
|
||||
// It returns an error if the executable is missing or does not have executable permissions set.
|
||||
func (v *Versioner) GetExecutableInDirectory(name, directory string) (string, error) {
|
||||
return getExecutableInDirectory(name, directory)
|
||||
}
|
||||
|
||||
func getExecutableInDirectory(name, directory string) (string, error) {
|
||||
exe := filepath.Join(directory, getExeName(name))
|
||||
|
||||
if !fileExists(exe) || !fileIsExecutable(exe) {
|
||||
@ -80,3 +84,10 @@ func (v *Versioner) GetExecutableInDirectory(name, directory string) (string, er
|
||||
|
||||
return exe, nil
|
||||
}
|
||||
|
||||
func IsNewerIgnorePrerelease(a, b *semver.Version) bool {
|
||||
aN, _ := a.SetPrerelease("")
|
||||
bN, _ := b.SetPrerelease("")
|
||||
|
||||
return aN.GreaterThan(&bN)
|
||||
}
|
||||
|
||||
@ -27,6 +27,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestIsNewerIgnorePrelease(t *testing.T) {
|
||||
// older
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.5.1")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.5.0")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.5.0+qa")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.5.0-dev")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.5.0-dev+qa")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0+qa"), semver.MustParse("2.5.0-dev")))
|
||||
assert.False(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0-dev"), semver.MustParse("2.5.0+qa")))
|
||||
|
||||
// not older
|
||||
assert.True(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0"), semver.MustParse("2.4.9-dev+qa")))
|
||||
assert.True(t, IsNewerIgnorePrerelease(semver.MustParse("2.5.0-dev+qa"), semver.MustParse("2.4.9")))
|
||||
}
|
||||
|
||||
func TestListVersions(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user