init.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/usr/bin/env bash
  2. # 启动脚本:一条命令完成依赖安装 + 基础验证 + 打印启动命令。
  3. #
  4. # 用法:
  5. # bash harness/init.sh # 安装依赖 + 跑验证 + 打印启动命令
  6. # RUN_START_COMMAND=1 bash harness/init.sh # 验证通过后直接启动开发服务器
  7. #
  8. # 验证失败时应当**停下来先修基础状态**,不要在坏的基础上继续叠新功能。
  9. set -u
  10. # ── 按项目实际情况修改这三个变量 ────────────────────────────────────────────
  11. INSTALL_CMD="npm install"
  12. VERIFY_CMD="npm run build"
  13. START_CMD="npm run dev"
  14. # ────────────────────────────────────────────────────────────────────────────
  15. # 切到仓库根目录(脚本可能在任意位置被调用)
  16. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  17. REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
  18. cd "$REPO_ROOT" || exit 1
  19. echo "=============================================="
  20. echo " 仓库根目录"
  21. echo "=============================================="
  22. pwd
  23. echo ""
  24. echo "=============================================="
  25. echo " 最近提交"
  26. echo "=============================================="
  27. if git rev-parse --git-dir >/dev/null 2>&1; then
  28. if git rev-parse HEAD >/dev/null 2>&1; then
  29. git log --oneline -5
  30. else
  31. echo "(仓库尚无任何提交——跳过。初始提交由用户自行完成。)"
  32. fi
  33. else
  34. echo "(不是 git 仓库——跳过)"
  35. fi
  36. echo ""
  37. echo "=============================================="
  38. echo " 安装依赖"
  39. echo "=============================================="
  40. echo "\$ ${INSTALL_CMD}"
  41. if ! ${INSTALL_CMD}; then
  42. echo ""
  43. echo "!! 依赖安装失败——先解决它,不要在坏的基础上继续。" >&2
  44. exit 1
  45. fi
  46. echo ""
  47. echo "=============================================="
  48. echo " 基础验证"
  49. echo "=============================================="
  50. echo "\$ ${VERIFY_CMD}"
  51. if ! ${VERIFY_CMD}; then
  52. echo ""
  53. echo "!! 基础验证失败——先修好再开工,不要在上面叠新功能。" >&2
  54. exit 1
  55. fi
  56. echo ""
  57. echo "基础验证通过。"
  58. echo ""
  59. echo "=============================================="
  60. echo " 启动命令"
  61. echo "=============================================="
  62. echo "\$ ${START_CMD}"
  63. echo ""
  64. echo "提示:开发服务器为 HTTPS(自签证书),浏览器首次访问会有证书告警,属正常现象。"
  65. echo " 聊天接口走同源代理 /chat-api,无需额外配置。"
  66. echo ""
  67. if [ "${RUN_START_COMMAND:-0}" = "1" ]; then
  68. echo "RUN_START_COMMAND=1,正在启动……"
  69. exec ${START_CMD}
  70. fi