diff --git a/installers/install.sh b/installers/install.sh index 978662623e..8a9143f80a 100755 --- a/installers/install.sh +++ b/installers/install.sh @@ -69,6 +69,9 @@ error () { case `uname -s` in Linux) OS="linux" + ARCH="amd64" + arch="`uname -m`" + if [ $arch = "arm64" -o $arch = "aarch64" ]; then ARCH="arm64"; fi DOWNLOADEXT=".tar.gz" ;; *BSD) @@ -78,11 +81,13 @@ Linux) ;; Darwin) OS="darwin" + ARCH="amd64" DOWNLOADEXT=".tar.gz" SHA256SUM="shasum -a 256" ;; MINGW*|MSYS*) OS="windows" + ARCH="amd64" DOWNLOADEXT=".zip" BINARYEXT=".exe" ;; @@ -113,18 +118,18 @@ mkdir -p "$INSTALLERTMPDIR" if [ -z "$VERSION" ]; then # If the user did not specify a version, formulate a query to fetch the JSON info of the latest # version, including where it is. - JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS" + JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS&arch=$ARCH" elif [ -z "`echo $VERSION | grep -o '\-SHA'`" ]; then # If the user specified a partial version (i.e. no SHA), formulate a query to fetch the JSON info # of that version's latest SHA, including where it is. VERSIONNOSHA="$VERSION" VERSION="" - JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS&target-version=$VERSIONNOSHA" + JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS&arch=$ARCH&target-version=$VERSIONNOSHA" else # If the user specified a full version with SHA, formulate a query to fetch the JSON info of that # version. VERSIONNOSHA="`echo $VERSION | sed 's/-SHA.*$//'`" - JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS&target-version=$VERSIONNOSHA" + JSONURL="$BASE_INFO_URL?channel=$CHANNEL&source=install&platform=$OS&arch=$ARCH&target-version=$VERSIONNOSHA" fi # Fetch version info. @@ -157,13 +162,13 @@ else error "Unknown version: $VERSION" exit 1 fi - RELURL="$CHANNEL/$VERSIONNOSHA/$OS-amd64/state-$OS-amd64-$VERSION$DOWNLOADEXT" + RELURL="$CHANNEL/$VERSIONNOSHA/$OS-$ARCH/state-$OS-$ARCH-$VERSION$DOWNLOADEXT" fi # Fetch the requested or latest version. progress "Preparing Installer for State Tool Package Manager version $VERSION" STATEURL="$BASE_FILE_URL/$RELURL" -ARCHIVE="$OS-amd64$DOWNLOADEXT" +ARCHIVE="$OS-$ARCH$DOWNLOADEXT" $FETCH $INSTALLERTMPDIR/$ARCHIVE $STATEURL # wget and curl differ on how to handle AWS' "Forbidden" result for unknown versions. # wget will exit with nonzero status. curl simply creates an XML file with the forbidden error.