Initial commit: MyBlog full stack blog
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user