|
1 | 1 | @echo off |
2 | 2 | chcp 65001 >nul |
3 | | -setlocal |
| 3 | +setlocal EnableExtensions |
4 | 4 |
|
5 | 5 | set "ROOT_DIR=%~dp0" |
6 | | -cd /d "%ROOT_DIR%garss-studio" || exit /b 1 |
| 6 | +if "%ROOT_DIR:~-1%"=="\" set "ROOT_DIR=%ROOT_DIR:~0,-1%" |
| 7 | +set "PROJECT_DIR=%ROOT_DIR%\garss-studio" |
| 8 | +set "COMPOSE_FILE=docker-compose.dev.yml" |
| 9 | + |
| 10 | +cd /d "%PROJECT_DIR%" || exit /b 1 |
7 | 11 |
|
8 | 12 | if not "%~1"=="" ( |
9 | 13 | call :run_action "%~1" |
@@ -69,28 +73,82 @@ echo 未知操作: %selected% |
69 | 73 | echo 可用操作: start / stop / upgrade / status / exit |
70 | 74 | exit /b 1 |
71 | 75 |
|
| 76 | +:ensure_docker |
| 77 | +docker --version >nul 2>nul |
| 78 | +if errorlevel 1 ( |
| 79 | + echo 请先安装并启动 Docker Desktop。 |
| 80 | + exit /b 1 |
| 81 | +) |
| 82 | +exit /b 0 |
| 83 | + |
| 84 | +:ensure_env |
| 85 | +if not exist ".env" ( |
| 86 | + copy ".env.example" ".env" >nul |
| 87 | + echo 已从 .env.example 创建 .env |
| 88 | +) |
| 89 | +exit /b 0 |
| 90 | + |
| 91 | +:set_entry_url |
| 92 | +set "ACCESS_CODE=banana" |
| 93 | +if exist ".env" ( |
| 94 | + for /f "usebackq tokens=1,* delims==" %%A in (".env") do ( |
| 95 | + if "%%A"=="ACCESS_CODE" set "ACCESS_CODE=%%B" |
| 96 | + ) |
| 97 | +) |
| 98 | +set "ACCESS_CODE=%ACCESS_CODE:"=%" |
| 99 | +set "GARSS_URL=http://127.0.0.1:25173/reader?pw=%ACCESS_CODE%" |
| 100 | +exit /b 0 |
| 101 | + |
| 102 | +:open_entry |
| 103 | +call :set_entry_url |
| 104 | +echo 入口: %GARSS_URL% |
| 105 | +start "" "%GARSS_URL%" |
| 106 | +exit /b 0 |
| 107 | + |
72 | 108 | :do_start |
73 | 109 | echo 正在启动 GARSS... |
74 | 110 | echo. |
75 | | -call npm run quick:start -- --open |
76 | | -exit /b %ERRORLEVEL% |
| 111 | +call :ensure_docker || exit /b 1 |
| 112 | +call :ensure_env || exit /b 1 |
| 113 | +docker compose -f "%COMPOSE_FILE%" up --build -d |
| 114 | +if errorlevel 1 exit /b %ERRORLEVEL% |
| 115 | +call :open_entry |
| 116 | +exit /b 0 |
77 | 117 |
|
78 | 118 | :do_stop |
79 | 119 | echo 正在关闭 GARSS... |
80 | 120 | echo. |
81 | | -call npm run quick:stop |
| 121 | +call :ensure_docker || exit /b 1 |
| 122 | +docker compose -f "%COMPOSE_FILE%" down |
82 | 123 | exit /b %ERRORLEVEL% |
83 | 124 |
|
84 | 125 | :do_upgrade |
85 | 126 | echo 正在升级 GARSS... |
86 | 127 | echo. |
87 | | -call npm run quick:upgrade -- --open |
88 | | -exit /b %ERRORLEVEL% |
| 128 | +call :ensure_docker || exit /b 1 |
| 129 | +call :ensure_env || exit /b 1 |
| 130 | +if exist "%ROOT_DIR%\.git" ( |
| 131 | + docker run --rm -v "%ROOT_DIR%:/repo" -w /repo alpine/git pull --ff-only |
| 132 | + if errorlevel 1 exit /b %ERRORLEVEL% |
| 133 | +) else ( |
| 134 | + echo 未检测到 .git,跳过代码拉取。 |
| 135 | +) |
| 136 | +docker compose -f "%COMPOSE_FILE%" pull rsshub |
| 137 | +if errorlevel 1 exit /b %ERRORLEVEL% |
| 138 | +docker compose -f "%COMPOSE_FILE%" up --build -d |
| 139 | +if errorlevel 1 exit /b %ERRORLEVEL% |
| 140 | +call :open_entry |
| 141 | +exit /b 0 |
89 | 142 |
|
90 | 143 | :do_status |
91 | 144 | echo 正在查看 GARSS 状态... |
92 | 145 | echo. |
93 | | -call npm run quick:status |
| 146 | +call :ensure_docker || exit /b 1 |
| 147 | +call :ensure_env || exit /b 1 |
| 148 | +call :set_entry_url |
| 149 | +echo 入口: %GARSS_URL% |
| 150 | +echo. |
| 151 | +docker compose -f "%COMPOSE_FILE%" ps |
94 | 152 | exit /b %ERRORLEVEL% |
95 | 153 |
|
96 | 154 | :do_exit |
|
0 commit comments