一键启动停止项目
This commit is contained in:
1 parent
96ee180564
commit
88cdcdfb02
11 files changed
+233
-8
No files matched your search
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/bin/zsh
|
||||
|
||||
set -u
|
||||
|
||||
PROJECT_DIR="${0:A:h}"
|
||||
RUN_DIR="$PROJECT_DIR/.run"
|
||||
PID_FILE="$RUN_DIR/spine-particle.pid"
|
||||
LOG_FILE="$RUN_DIR/spine-particle.log"
|
||||
URL="http://127.0.0.1:5173/"
|
||||
|
||||
mkdir -p "$RUN_DIR"
|
||||
cd "$PROJECT_DIR" || exit 1
|
||||
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
RUNNING_PID="$(tr -dc '0-9' < "$PID_FILE")"
|
||||
if [[ -n "$RUNNING_PID" ]] && kill -0 "$RUNNING_PID" 2>/dev/null; then
|
||||
echo "Spine粒子编辑器已经在运行,正在打开页面:"
|
||||
echo "$URL"
|
||||
open "$URL"
|
||||
exit 0
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "未找到 npm,请先安装 Node.js。"
|
||||
echo "https://nodejs.org/"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -x "$PROJECT_DIR/node_modules/.bin/vite" ]]; then
|
||||
echo "首次运行,正在安装项目依赖..."
|
||||
npm install || {
|
||||
echo "依赖安装失败,请检查网络或 npm 配置。"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
echo "正在启动 Spine粒子编辑器..."
|
||||
nohup "$PROJECT_DIR/node_modules/.bin/vite" --host 127.0.0.1 --port 5173 --strictPort > "$LOG_FILE" 2>&1 &
|
||||
SERVER_PID=$!
|
||||
echo "$SERVER_PID" > "$PID_FILE"
|
||||
|
||||
for _ in {1..60}; do
|
||||
if ! kill -0 "$SERVER_PID" 2>/dev/null; then
|
||||
echo "项目启动失败,日志如下:"
|
||||
tail -n 30 "$LOG_FILE"
|
||||
rm -f "$PID_FILE"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
fi
|
||||
if curl -fsS "$URL" >/dev/null 2>&1; then
|
||||
echo "启动成功:$URL"
|
||||
open "$URL"
|
||||
exit 0
|
||||
fi
|
||||
sleep 0.25
|
||||
done
|
||||
|
||||
echo "项目启动超时,请查看日志:$LOG_FILE"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
Reference in new issue
Block a user