refactor: clean up zip entrypoint output
This commit is contained in:
+50
-13
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user