refactor: clean up zip entrypoint output

This commit is contained in:
2026-05-16 15:50:52 +00:00
parent b851ff41d8
commit 444c2bd840
+50 -13
View File
@@ -1,23 +1,60 @@
#!/bin/bash
#!/usr/bin/env bash
echo "=================================================="
set -euo pipefail
echo "參數檢查"
readonly BORDER='=================================================='
readonly DIVIDER='--------------------------------------------------'
echo "--------------------------------------------------"
log_section() {
printf '%s\n%s\n%s\n' "$BORDER" "$1" "$DIVIDER"
}
# 顯示 RELEASE_VERSION 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_VERSION=$RELEASE_VERSION" && ([ -z "$RELEASE_VERSION" ] || [ "$RELEASE_VERSION" = "null" ]) && exit 1
log_kv() {
printf '%-16s %s\n' "$1" "$2"
}
# 顯示 RELEASE_FOLDER 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_FOLDER=$RELEASE_FOLDER" && ([ -z "$RELEASE_FOLDER" ] || [ "$RELEASE_FOLDER" = "null" ]) && exit 1
fail() {
printf '錯誤: %s\n' "$1" >&2
exit 1
}
echo "=================================================="
require_value() {
local name="$1"
local value="${2:-}"
echo "壓縮檔案"
log_kv "$name" "$value"
echo "--------------------------------------------------"
if [[ -z "$value" || "$value" == "null" ]]; then
fail "$name 不能為空"
fi
}
zip -r "$(basename "$PWD").$RELEASE_VERSION.zip" $RELEASE_FOLDER/*
log_section '參數檢查'
require_value 'RELEASE_VERSION' "${RELEASE_VERSION:-}"
require_value 'RELEASE_FOLDER' "${RELEASE_FOLDER:-}"
echo "=================================================="
if [[ ! -d "$RELEASE_FOLDER" ]]; then
fail "找不到資料夾: $RELEASE_FOLDER"
fi
if ! command -v zip >/dev/null 2>&1; then
fail '找不到 zip 指令,請確認映像檔已安裝 zip'
fi
archive_name="$(basename "$PWD").${RELEASE_VERSION}.zip"
archive_path="$PWD/$archive_name"
file_count="$(find "$RELEASE_FOLDER" -type f | wc -l | tr -d ' ')"
log_section '壓縮檔案'
log_kv '來源資料夾' "$RELEASE_FOLDER"
log_kv '檔案數量' "$file_count"
log_kv '輸出檔案' "$archive_name"
(
cd "$RELEASE_FOLDER"
zip -qr "$archive_path" .
)
log_kv '狀態' '壓縮完成'
log_kv '檔案位置' "$archive_path"
printf '%s\n' "$BORDER"