scripts/publish.sh — 接受版本号参数,更新 oh-package.json5 并执行 ohpm publish。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
59 行
2.3 KiB
Bash
可执行文件
59 行
2.3 KiB
Bash
可执行文件
#!/usr/bin/env bash
|
||
# XuqmGroup HarmonyOS SDK 本地发版脚本
|
||
# 使用方式:
|
||
# bash scripts/publish.sh 1.0.0
|
||
# 或直接执行(交互式输入版本号):
|
||
# bash scripts/publish.sh
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
SDK_DIR="$(dirname "$SCRIPT_DIR")" # xuqm-sdk/
|
||
PKG_FILE="$SDK_DIR/oh-package.json5"
|
||
|
||
# ── 版本号 ────────────────────────────────────────────────────────────────────
|
||
|
||
VERSION="${1:-}"
|
||
if [ -z "$VERSION" ]; then
|
||
read -rp "请输入发布版本号(如 1.0.0): " VERSION
|
||
fi
|
||
if [ -z "$VERSION" ]; then
|
||
echo "❌ 版本号不能为空" >&2
|
||
exit 1
|
||
fi
|
||
|
||
# ── 检查 ohpm ─────────────────────────────────────────────────────────────────
|
||
|
||
if ! command -v ohpm &>/dev/null; then
|
||
echo "❌ 未找到 ohpm 命令,请安装 DevEco Studio 并将 ohpm 加入 PATH" >&2
|
||
echo " macOS 默认路径:~/Library/Huawei/ohpm/bin" >&2
|
||
exit 1
|
||
fi
|
||
|
||
if ! ohpm whoami &>/dev/null; then
|
||
echo "❌ 未登录 ohpm,请先执行:ohpm login" >&2
|
||
exit 1
|
||
fi
|
||
|
||
# ── 更新版本号 ────────────────────────────────────────────────────────────────
|
||
|
||
echo "→ 更新 oh-package.json5 版本为 $VERSION ..."
|
||
if [[ "$(uname)" == "Darwin" ]]; then
|
||
sed -i '' "s/\"version\":[[:space:]]*\"[^\"]*\"/\"version\": \"$VERSION\"/" "$PKG_FILE"
|
||
else
|
||
sed -i "s/\"version\":[[:space:]]*\"[^\"]*\"/\"version\": \"$VERSION\"/" "$PKG_FILE"
|
||
fi
|
||
|
||
# 验证更新结果
|
||
ACTUAL=$(grep '"version"' "$PKG_FILE" | head -1)
|
||
echo " $ACTUAL"
|
||
|
||
# ── 发布 ──────────────────────────────────────────────────────────────────────
|
||
|
||
echo "→ 发布 @xuqm/harmony-sdk@$VERSION 到 ohpm ..."
|
||
cd "$SDK_DIR"
|
||
ohpm publish
|
||
|
||
echo ""
|
||
echo "✅ HarmonyOS SDK $VERSION 发布成功"
|
||
echo " 集成方式:ohpm install @xuqm/harmony-sdk@$VERSION"
|