set -eo pipefail
# ------------------------------------------------------------------------------
# 1. 全局变量与配色
# ------------------------------------------------------------------------------
COLOR_RED='\033[0;31m'
COLOR_GREEN='\033[0;32m'
COLOR_YELLOW='\033[0;33m'
COLOR_BLUE='\033[0;34m'
COLOR_RESET='\033[0m'
LOG_FILE="log_$(date +%Y%m%d_%H%M%S).log"
# 离线资源源路径
WORD_ROOT="/opt/installer"
# ------------------------------------------------------------------------------
# 2. 日志与异常捕捉函数
# ------------------------------------------------------------------------------
log() {
local level="$1"
local message="$2"
local timestamp
timestamp=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "${timestamp} [${level}] ${message}" | tee -a "${LOG_FILE}"
}
log_info() { log "${COLOR_BLUE}INFO${COLOR_RESET}" "$1"; }
log_success() { log "${COLOR_GREEN}SUCCESS${COLOR_RESET}" "$1"; }
log_warn() { log "${COLOR_YELLOW}WARN${COLOR_RESET}" "$1"; }
log_error() { log "${COLOR_RED}ERROR${COLOR_RESET}" "$1"; }
trap 'on_failure $? $LINENO' ERR
on_failure() {
local exit_code=$1
local line_no=$2
log_error "离线部署中断!错误发生在第 ${line_no} 行,退出码: ${exit_code}。请查看日志: ${LOG_FILE}"
exit "${exit_code}"
}