mirror of
https://github.com/openziti/ziti.git
synced 2026-10-12 07:18:36 +00:00
Properly handle installing and running 'latest' ziti binaries
This commit is contained in:
@@ -178,15 +178,21 @@ func DownloadGitHubReleaseAsset(fullUrl string, filepath string) (err error) {
|
||||
}
|
||||
|
||||
func FindVersionAndInstallGitHubRelease(zitiApp string, zitiAppGitHub string, targetOS, targetArch string, binDir string, version string, verbose bool) error {
|
||||
if version != "" {
|
||||
releaseVersion := version
|
||||
if version != "" && version != "latest" {
|
||||
if _, err := semver.Make(strings.TrimPrefix(version, "v")); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
version = "latest"
|
||||
v, err := GetLatestGitHubReleaseVersion(zitiApp, verbose)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
releaseVersion = v.String()
|
||||
}
|
||||
|
||||
release, err := GetLatestGitHubReleaseAsset(zitiApp, zitiAppGitHub, version, verbose)
|
||||
release, err := GetLatestGitHubReleaseAsset(zitiApp, zitiAppGitHub, releaseVersion, verbose)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -248,14 +254,17 @@ func InstallGitHubRelease(zitiApp string, release *GitHubReleasesData, binDir st
|
||||
if zitiApp == c.ZITI {
|
||||
count := 0
|
||||
zitiFileName := "ziti-" + version
|
||||
semVer, err := versions.ParseSemVer(version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
expectedPath := "ziti"
|
||||
pathChangedVersion := versions.MustParseSemVer("0.29.0")
|
||||
if semVer.CompareTo(pathChangedVersion) < 0 {
|
||||
expectedPath = "ziti/ziti"
|
||||
if version != "latest" {
|
||||
semVer, err := versions.ParseSemVer(version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
pathChangedVersion := versions.MustParseSemVer("0.29.0")
|
||||
if semVer.CompareTo(pathChangedVersion) < 0 {
|
||||
expectedPath = "ziti/ziti"
|
||||
}
|
||||
}
|
||||
err = UnTarGz(fullPath, binDir, func(path string) (string, bool) {
|
||||
if path == expectedPath {
|
||||
|
||||
@@ -2,25 +2,11 @@ package getziti
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/blang/semver"
|
||||
c "github.com/openziti/ziti/ziti/constants"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func InstallZiti(targetVersion, targetOS, targetArch, binDir string, verbose bool) error {
|
||||
var newVersion semver.Version
|
||||
|
||||
if targetVersion != "" {
|
||||
newVersion = semver.MustParse(strings.TrimPrefix(targetVersion, "v"))
|
||||
} else {
|
||||
v, err := GetLatestGitHubReleaseVersion(c.ZITI, verbose)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newVersion = v
|
||||
}
|
||||
|
||||
fmt.Println("Attempting to install '" + c.ZITI + "' version: v" + newVersion.String())
|
||||
fmt.Println("Attempting to install '" + c.ZITI + "' version: " + targetVersion)
|
||||
return FindVersionAndInstallGitHubRelease(
|
||||
c.ZITI, c.ZITI, targetOS, targetArch, binDir, "v"+newVersion.String(), verbose)
|
||||
c.ZITI, c.ZITI, targetOS, targetArch, binDir, targetVersion, verbose)
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ type ControllerType struct {
|
||||
}
|
||||
|
||||
func (self *ControllerType) InitType(*model.Component) {
|
||||
if self.Version != "" && !strings.HasPrefix(self.Version, "v") {
|
||||
if self.Version != "" && self.Version != "latest" && !strings.HasPrefix(self.Version, "v") {
|
||||
self.Version = "v" + self.Version
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ type EchoServerType struct {
|
||||
}
|
||||
|
||||
func (self *EchoServerType) InitType(*model.Component) {
|
||||
if self.Version != "" && !strings.HasPrefix(self.Version, "v") {
|
||||
if self.Version != "" && self.Version != "latest" && !strings.HasPrefix(self.Version, "v") {
|
||||
self.Version = "v" + self.Version
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ type RouterType struct {
|
||||
}
|
||||
|
||||
func (self *RouterType) InitType(*model.Component) {
|
||||
if self.Version != "" && !strings.HasPrefix(self.Version, "v") {
|
||||
if self.Version != "" && self.Version != "latest" && !strings.HasPrefix(self.Version, "v") {
|
||||
self.Version = "v" + self.Version
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ type ZCatType struct {
|
||||
}
|
||||
|
||||
func (self *ZCatType) InitType(*model.Component) {
|
||||
if self.Version != "" && !strings.HasPrefix(self.Version, "v") {
|
||||
if self.Version != "" && self.Version != "latest" && !strings.HasPrefix(self.Version, "v") {
|
||||
self.Version = "v" + self.Version
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ func (self *ZitiTunnelType) GetActions() map[string]model.ComponentAction {
|
||||
}
|
||||
|
||||
func (self *ZitiTunnelType) InitType(*model.Component) {
|
||||
if self.Version != "" && !strings.HasPrefix(self.Version, "v") {
|
||||
if self.Version != "" && self.Version != "latest" && !strings.HasPrefix(self.Version, "v") {
|
||||
self.Version = "v" + self.Version
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user