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