Files
guzhujushiBlog/deploy/install_javy.sh
T

43 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ============================================================
# 安装 Javy(JS→WASM 编译工具)到服务器
# ------------------------------------------------------------
# 用法:bash deploy/install_javy.sh
# 作用:从 GitHub 官方 Releases 下载 Javy(约 14MB 单文件),
# 校验 SHA256 后安装到 /usr/local/bin/javy
# 幂等:已安装且版本一致时直接跳过,可重复执行
# 体积说明:下载包约 14MB,解压后约 40MB,仅占磁盘少量空间
# ============================================================
set -eu
JAVY_VERSION="${JAVY_VERSION:-9.1.0}"
JAVY_BIN="/usr/local/bin/javy"
URL="https://github.com/bytecodealliance/javy/releases/download/v${JAVY_VERSION}/javy-x86_64-linux-v${JAVY_VERSION}.gz"
SHA_URL="${URL}.sha256"
# 已安装且版本匹配 -> 跳过(避免重复下载)
if [ -x "$JAVY_BIN" ] && "$JAVY_BIN" --version 2>/dev/null | grep -q "$JAVY_VERSION"; then
echo "Javy ${JAVY_VERSION} 已安装,跳过下载:$($JAVY_BIN --version)"
exit 0
fi
echo "== 下载 Javy ${JAVY_VERSION}(约 14MB=="
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
curl -fL -sS -o "$TMP/javy.gz" "$URL"
curl -fL -sS -o "$TMP/javy.gz.sha256" "$SHA_URL"
echo "== 校验 SHA256 =="
EXPECT=$(awk '{print $1}' "$TMP/javy.gz.sha256")
ACTUAL=$(sha256sum "$TMP/javy.gz" | awk '{print $1}')
if [ "$EXPECT" != "$ACTUAL" ]; then
echo "校验失败:期望 $EXPECT,实际 $ACTUAL" >&2
exit 1
fi
echo "校验通过"
gunzip -f "$TMP/javy.gz"
install -m 0755 "$TMP/javy" "$JAVY_BIN"
echo "安装完成:$("$JAVY_BIN" --version)"
echo "路径:$JAVY_BIN"