Skip to content

Commit

Permalink
Merge pull request #177 from cchen666/cchen-dev-issue-176
Browse files Browse the repository at this point in the history
[Upgrade] Create temp file when upgrading, closes #176
  • Loading branch information
gmeghnag authored Sep 6, 2024
2 parents 373b57c + d9224f0 commit 500faf7
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 13 deletions.
17 changes: 10 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
&& go version
- name: Build
run: |
echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
TAG="${GITHUB_REF#refs/tags/}"
HASH=$(git log -n1 --pretty=format:%h)
echo ${TAG} ${HASH}
Expand All @@ -32,9 +32,9 @@ jobs:
&& env GOOS=linux CGO_ENABLED=0 GOARCH=arm64 go build -ldflags "-X 'github.com/gmeghnag/omc/vars.OMCVersionTag=${TAG}' -X github.com/gmeghnag/omc/vars.OMCVersionHash=${HASH}" -o omc \
&& tar -cvzf omc_Linux_arm64.tar.gz omc && cp omc_Linux_arm64.tar.gz omc_Linux_aarch64.tar.gz && rm -rf omc \
&& env GOOS=darwin CGO_ENABLED=0 GOARCH=amd64 go build -ldflags "-X 'github.com/gmeghnag/omc/vars.OMCVersionTag=${TAG}' -X github.com/gmeghnag/omc/vars.OMCVersionHash=${HASH}" -o omc \
&& cp omc omc_Darwin_x86_64 && tar -cvzf omc_Darwin_x86_64.tar.gz omc && rm -rf omc \
&& cp omc omc_Darwin_x86_64 && cp omc omc_Darwin_amd64 && tar -cvzf omc_Darwin_x86_64.tar.gz omc && rm -rf omc \
&& env GOOS=darwin CGO_ENABLED=0 GOARCH=arm64 go build -ldflags "-X 'github.com/gmeghnag/omc/vars.OMCVersionTag=${TAG}' -X github.com/gmeghnag/omc/vars.OMCVersionHash=${HASH}" -o omc \
&& tar -cvzf omc_Darwin_arm64.tar.gz omc && cp omc_Darwin_arm64.tar.gz omc_Darwin_aarch64.tar.gz && rm -rf omc \
&& cp omc omc_Darwin_arm64 && tar -cvzf omc_Darwin_arm64.tar.gz omc && cp omc_Darwin_arm64.tar.gz omc_Darwin_aarch64.tar.gz && rm -rf omc \
&& env GOOS=windows CGO_ENABLED=0 GOARCH=amd64 go build -ldflags "-X 'github.com/gmeghnag/omc/vars.OMCVersionTag=${TAG}' -X github.com/gmeghnag/omc/vars.OMCVersionHash=${HASH}" -o omc.exe \
&& zip omc_Windows_x86_64.zip omc.exe \
&& md5sum omc_Linux_x86_64.tar.gz | tee -a checksums.txt \
Expand All @@ -44,6 +44,7 @@ jobs:
&& md5sum omc_Darwin_arm64.tar.gz | tee -a checksums.txt \
&& md5sum omc_Darwin_aarch64.tar.gz | tee -a checksums.txt \
&& md5sum omc_Windows_x86_64.zip | tee -a checksums.txt \
&& md5sum omc_Darwin_arm64 | tee -a checksums.txt \
&& md5sum omc_Darwin_x86_64 | tee -a checksums.txt \
&& md5sum omc_Linux_x86_64| tee -a checksums.txt
- name: Release
Expand All @@ -53,12 +54,14 @@ jobs:
files: |
checksums.txt
omc_Linux_x86_64
omc_Linux_x86_64.tar.gz
omc_Linux_arm64.tar.gz
omc_Linux_x86_64.tar.gz
omc_Linux_arm64.tar.gz
omc_Linux_aarch64.tar.gz
omc_Darwin_x86_64
omc_Darwin_x86_64.tar.gz
omc_Darwin_arm64.tar.gz
omc_Darwin_aarch64.tar.gz
omc_Darwin_arm64
omc_Darwin_arm64.tar.gz
omc_Darwin_amd64
omc_Darwin_aarch64.tar.gz
omc_Windows_x86_64.zip
name: "${{ env.RELEASE_TAG }} release"
19 changes: 15 additions & 4 deletions cmd/upgrade/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,18 @@ func updateOmcExecutable(omcExecutablePath string, url string, desiredVersion st
}
defer resp.Body.Close()

err = os.Remove(omcExecutablePath)
tempFile, err := os.CreateTemp("", "omcExecutable_*.tmp")
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
return err
}
defer tempFile.Close()

err = tempFile.Chmod(0755)
if err != nil {
return err
}
f, err := os.OpenFile(omcExecutablePath, os.O_CREATE|os.O_WRONLY, 0777)

f, err := os.OpenFile(tempFile.Name(), os.O_CREATE|os.O_WRONLY, 0777)
if err != nil {
return err
}
Expand All @@ -68,6 +74,11 @@ func updateOmcExecutable(omcExecutablePath string, url string, desiredVersion st
if err != nil {
return err
}

err = os.Rename(tempFile.Name(), omcExecutablePath)
if err != nil {
return err
}
return nil
}

Expand Down
8 changes: 6 additions & 2 deletions cmd/upgrade/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import (

var DesiredVersion string

const omcDarwinFile = "omc_Darwin"

func upgradeBinary(repoName string) {
ex, err := os.Executable()
if err != nil {
Expand Down Expand Up @@ -59,9 +61,11 @@ func upgradeBinary(repoName string) {
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":
omcUrl := "https://github.com/" + repoName + "/releases/download/" + DesiredVersion + "/omc_Darwin_x86_64"
arch := runtime.GOARCH
omcBinFile := omcDarwinFile + "_" + arch
omcUrl := "https://github.com/" + repoName + "/releases/download/" + DesiredVersion + "/" + omcBinFile
if DesiredVersion == "latest" {
omcUrl = "https://github.com/" + repoName + "/releases/" + DesiredVersion + "/download/omc_Darwin_x86_64"
omcUrl = "https://github.com/" + repoName + "/releases/" + DesiredVersion + "/download/" + omcBinFile
}
err = updateOmcExecutable(omcExecutablePath, omcUrl, DesiredVersion)
if err != nil {
Expand Down

0 comments on commit 500faf7

Please sign in to comment.