#!/bin/bash

# Copyright (c) Huawei Technologies Co., Ltd. 2026. All rights reserved.
#

set -e  # 遇到错误时退出

echo "开始时间:【$(date '+%H:%M:%S')】"

# 获取项目根目录
project_path=$(cd "$(dirname "$0")" && pwd)
echo "项目路径: ${project_path}"

cd "${project_path}" || exit 1

# ==========================================================
# 安装依赖(可选)
# ==========================================================
if [ -f "oh-package.json5" ] && command -v ohpm &> /dev/null; then
    echo "安装依赖包..."
    ohpm install --all || echo "警告: 依赖安装失败,继续构建..."
fi

# ==========================================================
# 开始构建
# ==========================================================
echo ""
echo "********** 开始构建HAP包 **********"
echo "构建类型: release"
echo "产品: default"

# 清理
hvigorw clean --no-daemon

# 同步并安装依赖
hvigorw --sync --no-daemon
ohpm install

# 构建entry模块(带测试覆盖率)
hvigorw --mode module -p module=entry -p debuggable=false -p ohos-test-coverage=true assembleHap --parallel --incremental --no-daemon --stacktrace

# 构建测试模块
hvigorw --mode module -p module=entry@ohosTest -p debuggable=false -p ohos-test-coverage=true assembleHap packageTesting --parallel --incremental --no-daemon --stacktrace

# 最终构建
hvigorw --mode module -p module=entry -p product=default -p debuggable=false assembleHap --no-daemon

echo ""
echo "********** 构建完成 **********"
echo "结束时间:【$(date '+%H:%M:%S')】"

# ==========================================================
# 查找HAP文件
# ==========================================================
echo ""
echo "查找生成的HAP文件..."

hap_file=$(find "${project_path}" -name "*.hap" -type f 2>/dev/null | head -1)

if [ -n "${hap_file}" ]; then
    echo "成功生成HAP文件: ${hap_file}"
    echo ""
    echo "HAP文件信息:"
    ls -lh "${hap_file}"
else
    echo "警告: 未找到HAP文件,请检查构建日志"
fi

exit 0