Files

163 lines
3.1 KiB
Batchfile

@echo off
chcp 65001 >nul
setlocal EnableExtensions EnableDelayedExpansion
cd /d "%~dp0"
title Writing Agent
set "PS=powershell -NoProfile -ExecutionPolicy Bypass -File"
set "CTL=%~dp0console.ps1"
call :ensure
if errorlevel 1 (
echo.
echo 启动失败。
pause
goto :menu
)
start "" "http://127.0.0.1:23337/"
:menu
cls
echo.
echo ========================================
echo Writing Agent 本机
echo http://localhost:23337
echo 不走隧道,也不在服务机上跑。
echo 不监视文件。改完代码后输入 update。
echo ========================================
echo.
echo start 启动服务并打开页面
echo stop 停止服务
echo restart 重启服务
echo update 用当前代码重启服务
echo open 打开页面
echo status 端口和 git 状态
echo pull git pull --ff-only
echo push git push
echo log 最近日志
echo help
echo exit 退出控制台,服务继续运行
echo.
set "LINE="
set /p "LINE=指令: "
if not defined LINE goto :menu
call :dispatch "%LINE%"
if "%ERRORLEVEL%"=="2" goto :eof
goto :menu
:dispatch
set "RAW=%~1"
set "CHK=%RAW:&=%"
if not "%CHK%"=="%RAW%" goto :bad
set "CHK=%RAW:|=%"
if not "%CHK%"=="%RAW%" goto :bad
set "CHK=%RAW:>=%"
if not "%CHK%"=="%RAW%" goto :bad
set "CHK=%RAW:<=%"
if not "%CHK%"=="%RAW%" goto :bad
set "CMD="
for /f "tokens=1" %%A in ("%RAW%") do set "CMD=%%A"
if /i "%CMD%"=="exit" exit /b 2
if /i "%CMD%"=="quit" exit /b 2
if /i "%CMD%"=="help" goto :show
if /i "%CMD%"=="start" goto :do_start
if /i "%CMD%"=="stop" goto :do_stop
if /i "%CMD%"=="restart" goto :do_update
if /i "%CMD%"=="update" goto :do_update
if /i "%CMD%"=="open" goto :do_open
if /i "%CMD%"=="status" goto :do_status
if /i "%CMD%"=="pull" goto :do_pull
if /i "%CMD%"=="push" goto :do_push
if /i "%CMD%"=="log" goto :do_log
goto :bad
:show
echo.
echo update 重启进程以加载当前代码,不监视文件。
echo pull 快进拉取,不自动重启。拉取后需要 update。
echo push 推送当前分支,不提交、不强制推送。
echo exit 只关这个窗口。
echo.
pause
exit /b 0
:do_start
echo.
%PS% "%CTL%" -Action start
if errorlevel 1 goto :held
start "" "http://127.0.0.1:23337/"
echo.
pause
exit /b 0
:do_stop
echo.
%PS% "%CTL%" -Action stop
echo.
pause
exit /b 0
:do_update
echo.
%PS% "%CTL%" -Action restart
if errorlevel 1 goto :held
echo 已用当前代码重启,没有开启文件监视。
echo.
pause
exit /b 0
:do_open
start "" "http://127.0.0.1:23337/"
exit /b 0
:do_status
echo.
%PS% "%CTL%" -Action status
echo.
pause
exit /b 0
:do_pull
echo.
git pull --ff-only
echo.
echo 代码已更新到磁盘后,输入 update 才会重启服务。
echo.
pause
exit /b 0
:do_push
echo.
git push
echo.
pause
exit /b 0
:do_log
echo.
%PS% "%CTL%" -Action log
echo.
pause
exit /b 0
:ensure
set "MODE="
for /f "delims=" %%A in ('%PS% "%CTL%" -Action query') do set "MODE=%%A"
if /i "!MODE!"=="web" exit /b 0
echo.
echo 正在启动服务(不监视文件)...
%PS% "%CTL%" -Action start
if errorlevel 1 exit /b 1
exit /b 0
:bad
echo.
echo 不认识这条指令。输入 help 查看。
echo.
pause
exit /b 0
:held
echo.
pause
exit /b 0