run.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. # 配置
  3. SOURCE_DIR="dist-prod" # 源文件夹
  4. ZIP_NAME="dc.ifoodme.com.zip" # 输出的 ZIP 文件名
  5. TEMP_DIR="/tmp/dc.ifoodme.com" # 临时目录,用于构建目标结构
  6. TARGET_DIR="dc.ifoodme.com" # ZIP 中的目标目录名
  7. # 颜色输出
  8. RED='\033[0;31m'
  9. GREEN='\033[0;32m'
  10. NC='\033[0m' # No Color
  11. # 检查命令是否存在
  12. command_exists() {
  13. command -v "$1" >/dev/null 2>&1
  14. }
  15. # 检查依赖
  16. check_dependencies() {
  17. for cmd in zip unzip; do
  18. if ! command_exists "$cmd"; then
  19. echo -e "${RED}错误:需要安装 $cmd${NC}"
  20. exit 1
  21. fi
  22. done
  23. }
  24. # 检查源文件夹
  25. check_source() {
  26. if [ ! -d "$SOURCE_DIR" ]; then
  27. echo -e "${RED}错误:源文件夹 $SOURCE_DIR 不存在${NC}"
  28. exit 1
  29. fi
  30. if [ ! -f "$SOURCE_DIR/index.html" ]; then
  31. echo -e "${RED}错误:$SOURCE_DIR 中没有 index.html 文件${NC}"
  32. exit 1
  33. fi
  34. }
  35. # 打包
  36. create_zip() {
  37. echo "开始打包..."
  38. # 创建临时目录并复制文件
  39. mkdir -p "$TEMP_DIR"
  40. cp -r "$SOURCE_DIR"/* "$TEMP_DIR"
  41. # 重命名临时目录为目标目录名
  42. mv "$TEMP_DIR" "$TARGET_DIR"
  43. # 打包为 ZIP
  44. zip -r "$ZIP_NAME" "$TARGET_DIR" >/dev/null
  45. if [ $? -eq 0 ]; then
  46. echo -e "${GREEN}打包成功:$ZIP_NAME${NC}"
  47. else
  48. echo -e "${RED}打包失败${NC}"
  49. exit 1
  50. fi
  51. }
  52. # 清理
  53. cleanup() {
  54. echo "清理临时文件..."
  55. rm -rf "$TARGET_DIR" test_unzip
  56. echo -e "${GREEN}清理完成${NC}"
  57. }
  58. # 主函数
  59. main() {
  60. check_dependencies
  61. check_source
  62. create_zip
  63. cleanup
  64. echo -e "${GREEN}所有任务完成!${NC}"
  65. }
  66. # 执行
  67. main