#!/bin/bash # 收银台sy项目打包脚本 # 用途:将sy项目打包成zip文件,排除不必要的文件 # 设置颜色输出 GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 获取脚本所在目录的父目录(项目根目录) SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" SY_DIR="$PROJECT_ROOT/sy" # 设置输出目录和文件名 OUTPUT_DIR="$PROJECT_ROOT" TIMESTAMP=$(date +%Y%m%d_%H%M%S) ZIP_NAME="sy_cashier_${TIMESTAMP}.zip" ZIP_PATH="$OUTPUT_DIR/$ZIP_NAME" echo -e "${GREEN}开始打包收银台sy项目...${NC}" echo "项目目录: $SY_DIR" echo "输出文件: $ZIP_PATH" # 进入sy目录 cd "$SY_DIR" || exit 1 # 创建临时目录用于打包 TEMP_DIR=$(mktemp -d) echo "临时目录: $TEMP_DIR" # 复制必要的文件到临时目录 echo -e "${YELLOW}复制文件...${NC}" # 复制HTML文件(排除备份文件) for html_file in *.html; do if [[ -f "$html_file" && "$html_file" != "home copy.html" && "$html_file" != "*.bak" ]]; then cp "$html_file" "$TEMP_DIR/" 2>/dev/null echo " ✓ $html_file" fi done # 复制CSS目录 if [ -d "css" ]; then cp -r css "$TEMP_DIR/" fi # 复制JS目录 if [ -d "js" ]; then cp -r js "$TEMP_DIR/" fi # 复制images目录 if [ -d "images" ]; then cp -r images "$TEMP_DIR/" fi # 复制必要的文档和脚本 for file in README.md QUICK_START.md API_CONFIG.md SETUP_CHECKLIST.md LAUNCH_QUICK_REFERENCE.txt start.sh start.bat start_3001.sh start_server.py; do if [ -f "$file" ]; then cp "$file" "$TEMP_DIR/" fi done # 排除的文件和目录 EXCLUDE_LIST=( "*.bak" "*.backup" "* copy.*" "home copy.html" "home.html.bak" "axios-1.x" ".git" ".gitignore" "node_modules" "*.log" "*.tmp" ".DS_Store" ) # 创建zip文件 echo -e "${YELLOW}创建压缩包...${NC}" cd "$TEMP_DIR" || exit 1 # 使用zip命令打包 zip -r "$ZIP_PATH" . -q # 清理临时目录 rm -rf "$TEMP_DIR" # 计算文件大小 FILE_SIZE=$(du -h "$ZIP_PATH" | cut -f1) echo -e "${GREEN}打包完成!${NC}" echo "文件路径: $ZIP_PATH" echo "文件大小: $FILE_SIZE" echo "" echo "打包包含的文件:" unzip -l "$ZIP_PATH" | tail -1 echo "" echo "可以使用以下命令查看详细内容:" echo " unzip -l $ZIP_PATH"