XuqmGroup-HarmonySDK/xuqm-sdk/scripts/publish.sh
XuqmGroup 5c97b669ae feat: 添加 HarmonyOS SDK 本地发版脚本
scripts/publish.sh — 接受版本号参数,更新 oh-package.json5 并执行 ohpm publish。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 14:24:51 +08:00

59 行
2.3 KiB
Bash
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

#!/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"