forked from CoplayDev/unity-mcp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrestore-dev.bat
More file actions
179 lines (156 loc) · 4.95 KB
/
restore-dev.bat
File metadata and controls
179 lines (156 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
@echo off
setlocal enabledelayedexpansion
echo ===============================================
echo MCP for Unity Development Restore Script
echo ===============================================
echo.
echo Note: The Python server is bundled under Server in the package.
echo This script restores your installed server path from backups, not the repo copy.
echo.
:: Configuration
set "DEFAULT_BACKUP_DIR=%USERPROFILE%\Desktop\unity-mcp-backup"
set "DEFAULT_SERVER_PATH=%LOCALAPPDATA%\UnityMCP\UnityMcpServer\src"
:: Get user inputs
echo Please provide the following paths:
echo.
:: Package cache location
echo Unity Package Cache Location:
echo Example: X:\UnityProject\Library\PackageCache\com.coplaydev.unity-mcp@1.0.0
set /p "PACKAGE_CACHE_PATH=Enter Unity package cache path: "
if "%PACKAGE_CACHE_PATH%"=="" (
echo Error: Package cache path cannot be empty!
pause
exit /b 1
)
:: Server installation path (with default)
echo.
echo Server Installation Path:
echo Default: %DEFAULT_SERVER_PATH%
set /p "SERVER_PATH=Enter server path (or press Enter for default): "
if "%SERVER_PATH%"=="" set "SERVER_PATH=%DEFAULT_SERVER_PATH%"
:: Backup location (with default)
echo.
echo Backup Location:
echo Default: %DEFAULT_BACKUP_DIR%
set /p "BACKUP_DIR=Enter backup directory (or press Enter for default): "
if "%BACKUP_DIR%"=="" set "BACKUP_DIR=%DEFAULT_BACKUP_DIR%"
:: List available backups
echo.
echo ===============================================
echo Available backups:
echo ===============================================
set "counter=0"
for /d %%d in ("%BACKUP_DIR%\backup_*") do (
set /a counter+=1
set "backup!counter!=%%d"
echo !counter!. %%~nxd
)
if %counter%==0 (
echo No backups found in %BACKUP_DIR%
pause
exit /b 1
)
echo.
set /p "choice=Select backup to restore (1-%counter%): "
:: Validate choice
if "%choice%"=="" goto :invalid_choice
if %choice% lss 1 goto :invalid_choice
if %choice% gtr %counter% goto :invalid_choice
set "SELECTED_BACKUP=!backup%choice%!"
echo.
echo Selected backup: %SELECTED_BACKUP%
:: Validation
echo.
echo ===============================================
echo Validating paths...
echo ===============================================
if not exist "%SELECTED_BACKUP%" (
echo Error: Selected backup not found: %SELECTED_BACKUP%
pause
exit /b 1
)
if not exist "%PACKAGE_CACHE_PATH%" (
echo Error: Package cache path not found: %PACKAGE_CACHE_PATH%
pause
exit /b 1
)
if not exist "%SERVER_PATH%" (
echo Error: Server installation path not found: %SERVER_PATH%
pause
exit /b 1
)
:: Confirm restore
echo.
echo ===============================================
echo WARNING: This will overwrite current files!
echo ===============================================
echo Restoring from: %SELECTED_BACKUP%
echo Unity Bridge Editor target: %PACKAGE_CACHE_PATH%\Editor
echo Unity Bridge Runtime target: %PACKAGE_CACHE_PATH%\Runtime
echo Python Server target: %SERVER_PATH%
echo.
set /p "confirm=Continue with restore? (y/N): "
if /i not "%confirm%"=="y" (
echo Restore cancelled.
pause
exit /b 0
)
echo.
echo ===============================================
echo Starting restore...
echo ===============================================
:: Restore Unity Bridge
if exist "%SELECTED_BACKUP%\UnityBridge\Editor" (
echo Restoring Unity Bridge Editor files...
rd /s /q "%PACKAGE_CACHE_PATH%\Editor" 2>nul
xcopy "%SELECTED_BACKUP%\UnityBridge\Editor\*" "%PACKAGE_CACHE_PATH%\Editor\" /E /I /Y > nul
if !errorlevel! neq 0 (
echo Error: Failed to restore Unity Bridge Editor files
pause
exit /b 1
)
) else (
echo Warning: No Unity Bridge Editor backup found, skipping...
)
if exist "%SELECTED_BACKUP%\UnityBridge\Runtime" (
echo Restoring Unity Bridge Runtime files...
rd /s /q "%PACKAGE_CACHE_PATH%\Runtime" 2>nul
xcopy "%SELECTED_BACKUP%\UnityBridge\Runtime\*" "%PACKAGE_CACHE_PATH%\Runtime\" /E /I /Y > nul
if !errorlevel! neq 0 (
echo Error: Failed to restore Unity Bridge Runtime files
pause
exit /b 1
)
) else (
echo Warning: No Unity Bridge Runtime backup found, skipping...
)
:: Restore Python Server
if exist "%SELECTED_BACKUP%\PythonServer" (
echo Restoring Python Server files...
rd /s /q "%SERVER_PATH%" 2>nul
mkdir "%SERVER_PATH%"
xcopy "%SELECTED_BACKUP%\PythonServer\*" "%SERVER_PATH%\" /E /I /Y > nul
if !errorlevel! neq 0 (
echo Error: Failed to restore Python Server files
pause
exit /b 1
)
) else (
echo Warning: No Python Server backup found, skipping...
)
:: Success
echo.
echo ===============================================
echo Restore completed successfully!
echo ===============================================
echo.
echo Next steps:
echo 1. Restart Unity Editor to load restored Bridge code
echo 2. Restart any MCP clients to use restored Server code
echo.
pause
exit /b 0
:invalid_choice
echo Invalid choice. Please enter a number between 1 and %counter%.
pause
exit /b 1