XuqmGroup-HarmonySDK/xuqm-sdk/scripts/publish.sh

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"