spine连接器和导出修改
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#!/bin/zsh
|
||||
|
||||
set -u
|
||||
|
||||
PACKAGE_DIR="${0:A:h}"
|
||||
PID_FILE="$PACKAGE_DIR/.run/spine-connector.pid"
|
||||
CONNECTOR_BIN="$PACKAGE_DIR/SpineParticleConnector"
|
||||
CONNECTOR_PID=""
|
||||
|
||||
if [[ -f "$PID_FILE" ]]; then CONNECTOR_PID="$(tr -dc '0-9' < "$PID_FILE")"; fi
|
||||
if [[ -z "$CONNECTOR_PID" ]] || ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
CONNECTOR_PID="$(lsof -tiTCP:27843 -sTCP:LISTEN 2>/dev/null | head -n 1)"
|
||||
fi
|
||||
|
||||
if [[ -z "$CONNECTOR_PID" ]] || ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
rm -f "$PID_FILE"
|
||||
echo "Spine粒子连接器已经停止。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
COMMAND="$(ps -p "$CONNECTOR_PID" -o command= 2>/dev/null)"
|
||||
if [[ "$COMMAND" != *"$CONNECTOR_BIN"* ]] && [[ "$COMMAND" != *"SpineParticleConnector"* ]]; then
|
||||
echo "27843 端口对应的进程不是此独立连接器,为避免误关,本次未执行停止。"
|
||||
rm -f "$PID_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kill "$CONNECTOR_PID" 2>/dev/null || true
|
||||
for _ in {1..30}; do
|
||||
if ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then break; fi
|
||||
sleep 0.1
|
||||
done
|
||||
if kill -0 "$CONNECTOR_PID" 2>/dev/null; then kill -KILL "$CONNECTOR_PID" 2>/dev/null || true; fi
|
||||
rm -f "$PID_FILE"
|
||||
echo "Spine粒子连接器已停止。"
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/bin/zsh
|
||||
|
||||
set -u
|
||||
|
||||
PACKAGE_DIR="${0:A:h}"
|
||||
RUN_DIR="$PACKAGE_DIR/.run"
|
||||
PID_FILE="$RUN_DIR/spine-connector.pid"
|
||||
LOG_FILE="$RUN_DIR/spine-connector.log"
|
||||
CONNECTOR_BIN="$PACKAGE_DIR/SpineParticleConnector"
|
||||
HEALTH_URL="http://127.0.0.1:27843/v1/health"
|
||||
|
||||
mkdir -p "$RUN_DIR"
|
||||
|
||||
if [[ ! -x "$CONNECTOR_BIN" ]]; then
|
||||
echo "未找到独立连接器:$CONNECTOR_BIN"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
CONNECTOR_PID="$(tr -dc '0-9' < "$PID_FILE")"
|
||||
if [[ -n "$CONNECTOR_PID" ]] && kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
echo "Spine粒子连接器已经在运行。"
|
||||
exit 0
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
|
||||
echo "正在启动 Spine粒子连接器..."
|
||||
nohup "$CONNECTOR_BIN" > "$LOG_FILE" 2>&1 < /dev/null &!
|
||||
CONNECTOR_PID=$!
|
||||
echo "$CONNECTOR_PID" > "$PID_FILE"
|
||||
|
||||
for _ in {1..40}; do
|
||||
if ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
echo "连接器启动失败:"
|
||||
tail -n 30 "$LOG_FILE"
|
||||
rm -f "$PID_FILE"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
fi
|
||||
if curl -fsS "$HEALTH_URL" >/dev/null 2>&1; then
|
||||
echo "Spine粒子连接器启动成功,可以回到网页直接导出 .spine。"
|
||||
exit 0
|
||||
fi
|
||||
sleep 0.25
|
||||
done
|
||||
|
||||
echo "连接器启动超时,请查看日志:$LOG_FILE"
|
||||
read "?按回车键关闭窗口..."
|
||||
exit 1
|
||||
@@ -0,0 +1,27 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal
|
||||
|
||||
set "PACKAGE_DIR=%~dp0"
|
||||
set "PID_FILE=%PACKAGE_DIR%.run\spine-connector.pid"
|
||||
set "CONNECTOR_BIN=%PACKAGE_DIR%SpineParticleConnector.exe"
|
||||
set "CONNECTOR_PID="
|
||||
if exist "%PID_FILE%" set /p CONNECTOR_PID=<"%PID_FILE%"
|
||||
|
||||
powershell -NoProfile -Command ^
|
||||
"$pidValue=0; [void][int]::TryParse($env:CONNECTOR_PID,[ref]$pidValue);" ^
|
||||
"$process=if($pidValue -gt 0){Get-CimInstance Win32_Process -Filter ('ProcessId = ' + $pidValue) -ErrorAction SilentlyContinue};" ^
|
||||
"if($null -eq $process){$listener=Get-NetTCPConnection -LocalPort 27843 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if($listener){$process=Get-CimInstance Win32_Process -Filter ('ProcessId = ' + $listener.OwningProcess) -ErrorAction SilentlyContinue}};" ^
|
||||
"if ($null -eq $process) { exit 2 };" ^
|
||||
"if ($process.CommandLine -notlike ('*' + $env:CONNECTOR_BIN + '*')) { exit 3 };" ^
|
||||
"Stop-Process -Id $process.ProcessId -Force"
|
||||
|
||||
set "STOP_RESULT=%ERRORLEVEL%"
|
||||
del /q "%PID_FILE%" >nul 2>&1
|
||||
if "%STOP_RESULT%"=="3" (
|
||||
echo 27843 端口对应的进程不是此独立连接器,为避免误关,本次未执行停止。
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo Spine粒子连接器已停止。
|
||||
exit /b 0
|
||||
@@ -0,0 +1,42 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal
|
||||
|
||||
set "PACKAGE_DIR=%~dp0"
|
||||
set "RUN_DIR=%PACKAGE_DIR%.run"
|
||||
set "PID_FILE=%RUN_DIR%\spine-connector.pid"
|
||||
set "OUT_LOG=%RUN_DIR%\spine-connector.log"
|
||||
set "ERROR_LOG=%RUN_DIR%\spine-connector-error.log"
|
||||
set "CONNECTOR_BIN=%PACKAGE_DIR%SpineParticleConnector.exe"
|
||||
|
||||
if not exist "%RUN_DIR%" mkdir "%RUN_DIR%"
|
||||
if not exist "%CONNECTOR_BIN%" (
|
||||
echo 未找到独立连接器:%CONNECTOR_BIN%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if exist "%PID_FILE%" (
|
||||
set /p CONNECTOR_PID=<"%PID_FILE%"
|
||||
powershell -NoProfile -Command "if (Get-Process -Id $env:CONNECTOR_PID -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }"
|
||||
if not errorlevel 1 (
|
||||
echo Spine粒子连接器已经在运行。
|
||||
exit /b 0
|
||||
)
|
||||
del /q "%PID_FILE%" >nul 2>&1
|
||||
)
|
||||
|
||||
echo 正在启动 Spine粒子连接器...
|
||||
powershell -NoProfile -Command ^
|
||||
"$process=Start-Process -FilePath $env:CONNECTOR_BIN -WorkingDirectory $env:PACKAGE_DIR -RedirectStandardOutput $env:OUT_LOG -RedirectStandardError $env:ERROR_LOG -WindowStyle Hidden -PassThru;" ^
|
||||
"Set-Content -Path $env:PID_FILE -Value $process.Id -Encoding ascii"
|
||||
|
||||
if errorlevel 1 (
|
||||
echo 连接器启动失败。
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
timeout /t 2 /nobreak >nul
|
||||
echo Spine粒子连接器已启动,可以回到网页直接导出 .spine。
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user