| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/usr/bin/env bash
- ryanjson_abs_dir() {
- local inputPath="$1"
- (cd "$(dirname "${inputPath}")" && pwd)
- }
- ryanjson_repo_root_from_source() {
- local sourcePath="$1"
- local levelsUp="${2:-0}"
- local currentDir=""
- currentDir="$(ryanjson_abs_dir "${sourcePath}")"
- while (( levelsUp > 0 )); do
- currentDir="$(cd "${currentDir}/.." && pwd)"
- levelsUp=$((levelsUp - 1))
- done
- printf '%s\n' "${currentDir}"
- }
- ryanjson_print_banner_begin() {
- local title="$1"
- echo "===================================================="
- echo "${title}"
- }
- ryanjson_print_banner_kv() {
- local key="$1"
- local value="$2"
- echo " - ${key}=${value}"
- }
- ryanjson_print_banner_end() {
- echo "===================================================="
- }
- ryanjson_require_cmd() {
- local cmdName="$1"
- local hint="${2:-}"
- if ! command -v "${cmdName}" >/dev/null 2>&1; then
- echo "[错误] 缺少命令: ${cmdName}"
- if [[ -n "${hint}" ]]; then
- echo "[提示] ${hint}"
- fi
- return 1
- fi
- }
- ryanjson_prepare_clean_dir() {
- local dirPath="$1"
- rm -rf "${dirPath}"
- mkdir -p "${dirPath}"
- }
- ryanjson_run_xmake_config() {
- local forceClean="$1"
- local caseName="$2"
- if [[ "${forceClean}" == "1" ]]; then
- echo "[阶段] 正在执行 xmake 配置(clean 模式)..."
- if ! xmake f -c; then
- echo "[错误] xmake 配置失败:${caseName}"
- return 1
- fi
- else
- echo "[阶段] 正在执行 xmake 配置(增量模式)..."
- if ! xmake f; then
- echo "[错误] xmake 配置失败:${caseName}"
- return 1
- fi
- fi
- }
- ryanjson_run_xmake_build() {
- local targetName="$1"
- local caseName="$2"
- echo "[阶段] 正在执行 xmake 构建(target=${targetName})..."
- if ! xmake -b "${targetName}"; then
- echo "[错误] xmake 构建失败:${caseName}"
- return 1
- fi
- }
|