Skip to content

Commit

Permalink
chore: release 2024.12.18 (#3769)
Browse files Browse the repository at this point in the history
  • Loading branch information
mise-en-dev authored and jdx committed Dec 23, 2024
1 parent 6611ac0 commit 48a64d6
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 30 deletions.
127 changes: 98 additions & 29 deletions packaging/standalone/install.envsubst
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,32 @@ get_arch() {
fi
}

get_ext() {
if [ -n "${MISE_INSTALL_EXT:-}" ]; then
echo "$MISE_INSTALL_EXT"
elif [ -n "${MISE_VERSION:-}" ] && echo "$MISE_VERSION" | grep -q '^v2024'; then
# 2024 versions don't have zstd tarballs
echo "tar.gz"
elif tar_supports_zstd; then
echo "tar.zst"
elif command -v zstd >/dev/null 2>&1; then
echo "tar.zst"
else
echo "tar.gz"
fi
}

tar_supports_zstd() {
# tar is bsdtar or version is >= 1.31
if tar --version | grep -q 'bsdtar'; then
true
elif tar --version | grep -q '1.(3[1-9]|{4-9}\d)'; then
true
else
false
fi
}

shasum_bin() {
if command -v shasum >/dev/null 2>&1; then
echo "shasum"
Expand All @@ -74,6 +100,7 @@ get_checksum() {
version=$1
os="$(get_os)"
arch="$(get_arch)"
ext="$(get_ext)"
url="https://github.com/jdx/mise/releases/download/${version}/SHASUMS256.txt"

# For current version use static checksum otherwise
Expand All @@ -87,33 +114,69 @@ get_checksum() {
checksum_linux_armv7_musl="$MISE_CHECKSUM_LINUX_ARMV7_MUSL"
checksum_macos_x86_64="$MISE_CHECKSUM_MACOS_X86_64"
checksum_macos_arm64="$MISE_CHECKSUM_MACOS_ARM64"
checksum_linux_x86_64_zstd="$MISE_CHECKSUM_LINUX_X86_64_ZSTD"
checksum_linux_x86_64_musl_zstd="$MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD"
checksum_linux_arm64_zstd="$MISE_CHECKSUM_LINUX_ARM64_ZSTD"
checksum_linux_arm64_musl_zstd="$MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD"
checksum_linux_armv7_zstd="$MISE_CHECKSUM_LINUX_ARMV7_ZSTD"
checksum_linux_armv7_musl_zstd="$MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD"
checksum_macos_arm64_zstd="$MISE_CHECKSUM_MACOS_ARM64_ZSTD"

if [ "$os" = "linux" ]; then
if [ "$arch" = "x64" ]; then
echo "$checksum_linux_x86_64"
elif [ "$arch" = "x64-musl" ]; then
echo "$checksum_linux_x86_64_musl"
elif [ "$arch" = "arm64" ]; then
echo "$checksum_linux_arm64"
elif [ "$arch" = "arm64-musl" ]; then
echo "$checksum_linux_arm64_musl"
elif [ "$arch" = "armv7" ]; then
echo "$checksum_linux_armv7"
elif [ "$arch" = "armv7-musl" ]; then
echo "$checksum_linux_armv7_musl"
else
warn "no checksum for $os-$arch"
fi
elif [ "$os" = "macos" ]; then
if [ "$arch" = "x64" ]; then
echo "$checksum_macos_x86_64"
elif [ "$arch" = "arm64" ]; then
echo "$checksum_macos_arm64"
else
warn "no checksum for $os-$arch"
fi
else
warn "no checksum for $os-$arch"
# TODO: refactor this, it's a bit messy
if [ "$(get_ext)" = "tar.zst" ]; then
if [ "$os" = "linux" ]; then
if [ "$arch" = "x64" ]; then
echo "$checksum_linux_x86_64_zstd"
elif [ "$arch" = "x64-musl" ]; then
echo "$checksum_linux_x86_64_musl_zstd"
elif [ "$arch" = "arm64" ]; then
echo "$checksum_linux_arm64_zstd"
elif [ "$arch" = "arm64-musl" ]; then
echo "$checksum_linux_arm64_musl_zstd"
elif [ "$arch" = "armv7" ]; then
echo "$checksum_linux_armv7_zstd"
elif [ "$arch" = "armv7-musl" ]; then
echo "$checksum_linux_armv7_musl_zstd"
else
warn "no checksum for $os-$arch"
fi
elif [ "$os" = "macos" ]; then
if [ "$arch" = "arm64" ]; then
echo "$checksum_macos_arm64_zstd"
else
warn "no checksum for $os-$arch"
fi
else
warn "no checksum for $os-$arch"
fi
else
if [ "$os" = "linux" ]; then
if [ "$arch" = "x64" ]; then
echo "$checksum_linux_x86_64"
elif [ "$arch" = "x64-musl" ]; then
echo "$checksum_linux_x86_64_musl"
elif [ "$arch" = "arm64" ]; then
echo "$checksum_linux_arm64"
elif [ "$arch" = "arm64-musl" ]; then
echo "$checksum_linux_arm64_musl"
elif [ "$arch" = "armv7" ]; then
echo "$checksum_linux_armv7"
elif [ "$arch" = "armv7-musl" ]; then
echo "$checksum_linux_armv7_musl"
else
warn "no checksum for $os-$arch"
fi
elif [ "$os" = "macos" ]; then
if [ "$arch" = "x64" ]; then
echo "$checksum_macos_x86_64"
elif [ "$arch" = "arm64" ]; then
echo "$checksum_macos_arm64"
else
warn "no checksum for $os-$arch"
fi
else
warn "no checksum for $os-$arch"
fi
fi
else
if command -v curl >/dev/null 2>&1; then
Expand All @@ -128,8 +191,9 @@ get_checksum() {
error "mise standalone install specific version requires curl or wget but neither is installed. Aborting."
fi
fi
# TODO: verify with minisign or gpg if available

checksum="$(echo "$checksums" | grep "$os-$arch.tar.gz")"
checksum="$(echo "$checksums" | grep "$os-$arch.$ext")"
if ! echo "$checksum" | grep -Eq "^([0-9a-f]{32}|[0-9a-f]{64})"; then
warn "no checksum for mise $version and $os-$arch"
else
Expand Down Expand Up @@ -168,9 +232,10 @@ install_mise() {
version="${MISE_VERSION:-$MISE_CURRENT_VERSION}"
os="$(get_os)"
arch="$(get_arch)"
ext="$(get_ext)"
install_path="${MISE_INSTALL_PATH:-$HOME/.local/bin/mise}"
install_dir="$(dirname "$install_path")"
tarball_url="https://github.com/jdx/mise/releases/download/${version}/mise-${version}-${os}-${arch}.tar.gz"
tarball_url="https://github.com/jdx/mise/releases/download/${version}/mise-${version}-${os}-${arch}.${ext}"

cache_file=$(download_file "$tarball_url")
debug "mise-setup: tarball=$cache_file"
Expand All @@ -182,7 +247,11 @@ install_mise() {
mkdir -p "$install_dir"
rm -rf "$install_path"
cd "$(mktemp -d)"
tar -xzf "$cache_file"
if [ "$(get_ext)" = "tar.zst" ] && ! tar_supports_zstd; then
zstd -d -c "$cache_file" | tar -xf -
else
tar -xzf "$cache_file"
fi
mv mise/bin/mise "$install_path"
info "mise: installed successfully to $install_path"
}
Expand Down
9 changes: 8 additions & 1 deletion scripts/render-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,12 @@ MISE_CURRENT_VERSION=$MISE_VERSION \
MISE_CHECKSUM_LINUX_ARMV7_MUSL=$(grep "mise-v.*linux-armv7-musl.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_X86_64=$(grep "mise-v.*macos-x64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64=$(grep "mise-v.*macos-arm64.tar.gz" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
envsubst '$MISE_CURRENT_VERSION,$MISE_CHECKSUM_LINUX_X86_64,$MISE_CHECKSUM_LINUX_X86_64_MUSL,$MISE_CHECKSUM_LINUX_ARM64,$MISE_CHECKSUM_LINUX_ARM64_MUSL,$MISE_CHECKSUM_LINUX_ARMV6,$MISE_CHECKSUM_LINUX_ARMV6_MUSL,$MISE_CHECKSUM_LINUX_ARMV7,$MISE_CHECKSUM_LINUX_ARMV7_MUSL,$MISE_CHECKSUM_MACOS_X86_64,$MISE_CHECKSUM_MACOS_ARM64' \
MISE_CHECKSUM_LINUX_X86_64_ZSTD=$(grep "mise-v.*linux-x64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD=$(grep "mise-v.*linux-x64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_ZSTD=$(grep "mise-v.*linux-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD=$(grep "mise-v.*linux-arm64-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_ZSTD=$(grep "mise-v.*linux-armv7.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD=$(grep "mise-v.*linux-armv7-musl.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
MISE_CHECKSUM_MACOS_ARM64_ZSTD=$(grep "mise-v.*macos-arm64.tar.zst" "$RELEASE_DIR/$MISE_VERSION/SHASUMS256.txt") \
envsubst '$MISE_CURRENT_VERSION,$MISE_CHECKSUM_LINUX_X86_64,$MISE_CHECKSUM_LINUX_X86_64_MUSL,$MISE_CHECKSUM_LINUX_ARM64,$MISE_CHECKSUM_LINUX_ARM64_MUSL,$MISE_CHECKSUM_LINUX_ARMV6,$MISE_CHECKSUM_LINUX_ARMV6_MUSL,$MISE_CHECKSUM_LINUX_ARMV7,$MISE_CHECKSUM_LINUX_ARMV7_MUSL,$MISE_CHECKSUM_MACOS_X86_64,$MISE_CHECKSUM_MACOS_ARM64,$MISE_CHECKSUM_LINUX_X86_64_ZSTD,$MISE_CHECKSUM_LINUX_X86_64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_ZSTD,$MISE_CHECKSUM_LINUX_ARM64_MUSL_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_ZSTD,$MISE_CHECKSUM_LINUX_ARMV7_MUSL_ZSTD,$MISE_CHECKSUM_MACOS_ARM64_ZSTD' \
<"$BASE_DIR/packaging/standalone/install.envsubst"

0 comments on commit 48a64d6

Please sign in to comment.