Skip to content

Commit

Permalink
Fix installer downloads for specific releases
Browse files Browse the repository at this point in the history
Github download urls for a specific release uses the pattern `../releases/download/[RELEASE]/..`, which differs from the latest release URL which uses `../releases/latest/download/..`.

For convenience, if `BINSTALL_VERSION` is set but doesn't start with `v`, the v is prefixed.
  • Loading branch information
mjpieters committed Nov 19, 2024
1 parent 2417642 commit 5385535
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
15 changes: 12 additions & 3 deletions install-from-binstall-release.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@ $ErrorActionPreference = "Stop"
Set-PSDebug -Trace 1
$tmpdir = $Env:TEMP
$BINSTALL_VERSION = $Env:BINSTALL_VERSION
if (-not $BINSTALL_VERSION) {
$BINSTALL_VERSION = 'latest'
if ($BINSTALL_VERSION -and $BINSTALL_VERSION -notlike 'v*') {
# prefix version with v
$BINSTALL_VERSION = "v$BINSTALL_VERSION"
}
$base_url = "https://github.com/cargo-bins/cargo-binstall/releases/$BINSTALL_VERSION/download/cargo-binstall-"
# Fetch binaries from `[..]/releases/latest/download/[..]` if _no_ version is
# given, otherwise from `[..]/releases/download/VERSION/[..]`. Note the shifted
# location of '/download'.
$base_url = if (-not $BINSTALL_VERSION) {
"https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-"
} else {
"https://github.com/cargo-bins/cargo-binstall/releases/download/$BINSTALL_VERSION/cargo-binstall-"
}

$proc_arch = [Environment]::GetEnvironmentVariable("PROCESSOR_ARCHITECTURE", [EnvironmentVariableTarget]::Machine)
if ($proc_arch -eq "AMD64") {
$arch = "x86_64"
Expand Down
14 changes: 12 additions & 2 deletions install-from-binstall-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,21 @@

set -euxo pipefail

BINSTALL_VERSION="${BINSTALL_VERSION:-latest}"
if [[ -n "$BINSTALL_VERSION" && "$BINSTALL_VERSION" != v* ]]; then
# prefix version with v
BINSTALL_VERSION="v$BINSTALL_VERSION"
fi

cd "$(mktemp -d)"

base_url="https://github.com/cargo-bins/cargo-binstall/releases/${BINSTALL_VERSION}/download/cargo-binstall-"
# Fetch binaries from `[..]/releases/latest/download/[..]` if _no_ version is
# given, otherwise from `[..]/releases/download/VERSION/[..]`. Note the shifted
# location of '/download'.
if [[ -z "$BINSTALL_VERSION" ]]; then
base_url="https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-"
else
base_url="https://github.com/cargo-bins/cargo-binstall/releases/download/${BINSTALL_VERSION}/cargo-binstall-"
fi

os="$(uname -s)"
if [ "$os" == "Darwin" ]; then
Expand Down

0 comments on commit 5385535

Please sign in to comment.