Skip to content

Commit

Permalink
allow upgrade --to=latest #63
Browse files Browse the repository at this point in the history
  • Loading branch information
gmeghnag committed Nov 23, 2022
1 parent 49e3039 commit b05d059
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
8 changes: 4 additions & 4 deletions cmd/upgrade/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import (
type Releases []Release
type Release map[string]interface{}

func updateOmcExecutable(omcExecutablePath string, url string) (err error) {
func updateOmcExecutable(omcExecutablePath string, url string, desiredVersion string) (err error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
Expand All @@ -59,7 +59,7 @@ func updateOmcExecutable(omcExecutablePath string, url string) (err error) {
defer f.Close()

//bar := progressbar.Default(-1, "")
bar := CustomBytes(
bar := CustomBytes(desiredVersion,
resp.ContentLength,
"upgrading",
)
Expand Down Expand Up @@ -104,7 +104,7 @@ func checkReleases(repoName string) {
}
}

func CustomBytes(maxBytes int64, description ...string) *progressbar.ProgressBar {
func CustomBytes(desiredVersion string, maxBytes int64, description ...string) *progressbar.ProgressBar {
desc := ""
if len(description) > 0 {
desc = description[0]
Expand All @@ -118,7 +118,7 @@ func CustomBytes(maxBytes int64, description ...string) *progressbar.ProgressBar
progressbar.OptionThrottle(65*time.Millisecond),
progressbar.OptionShowCount(),
progressbar.OptionOnCompletion(func() {
fmt.Fprint(os.Stderr, "\rDone! \n")
fmt.Fprint(os.Stderr, "\romc upgraded to "+desiredVersion+" \n")
}),
progressbar.OptionSpinnerType(14),
//progressbar.OptionFullWidth(),
Expand Down
32 changes: 21 additions & 11 deletions cmd/upgrade/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,31 +39,41 @@ func upgradeBinary(repoName string) {
checkReleases(repoName)
os.Exit(0)
}
if string(DesiredVersion[0]) != "v" {
if DesiredVersion != "latest" && string(DesiredVersion[0]) != "v" {
fmt.Println("error: --to must be a semantic version (e.g. v4.0.5): No Major.Minor.Patch elements found")
os.Exit(1)
}
desiredReleaseVer := semver.New(DesiredVersion[1:])
if vars.OMCVersionTag == "" {
vars.OMCVersionTag = "v2.0.1"
}
currentVer := semver.New(vars.OMCVersionTag[1:])
if desiredReleaseVer.LessThan(*currentVer) {
fmt.Println("error: The update " + DesiredVersion + " is not one of the available updates (check them by running \"omc upgrade\")")
os.Exit(1)
if DesiredVersion != "latest" {
desiredReleaseVer := semver.New(DesiredVersion[1:])
if vars.OMCVersionTag == "" {
vars.OMCVersionTag = "v2.0.1"
}
currentVer := semver.New(vars.OMCVersionTag[1:])
if desiredReleaseVer.LessThan(*currentVer) {
fmt.Println("error: The update " + DesiredVersion + " is not one of the available updates (check them by running \"omc upgrade\")")
os.Exit(1)
}
}
switch operatingSystem {
case "windows":
fmt.Println("This command is not available for windows.")
fmt.Println("Open an issue on the GitHub repo https://github.com/gmeghnag/omc if you want it impemented.")
case "darwin":
err = updateOmcExecutable(omcExecutablePath, "https://github.com/"+repoName+"/releases/download/"+DesiredVersion+"/omc_Darwin_x86_64")
omcUrl := "https://github.com/" + repoName + "/releases/download/" + DesiredVersion + "/omc_Darwin_x86_64"
if DesiredVersion == "latest" {
omcUrl = "https://github.com/" + repoName + "/releases/" + DesiredVersion + "/download/omc_Darwin_x86_64"
}
err = updateOmcExecutable(omcExecutablePath, omcUrl, DesiredVersion)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
case "linux":
err = updateOmcExecutable(omcExecutablePath, "https://github.com/"+repoName+"/releases/download/"+DesiredVersion+"/omc_Linux_x86_64")
omcUrl := "https://github.com/" + repoName + "/releases/download/" + DesiredVersion + "/omc_Linux_x86_64"
if DesiredVersion == "latest" {
omcUrl = "https://github.com/" + repoName + "/releases/" + DesiredVersion + "/download/omc_Linux_x86_64"
}
err = updateOmcExecutable(omcExecutablePath, omcUrl, DesiredVersion)
if err != nil {
fmt.Println(err)
os.Exit(1)
Expand Down

0 comments on commit b05d059

Please sign in to comment.