forgegit 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,329 @@
1
+ @echo off
2
+ setlocal EnableDelayedExpansion
3
+ chcp 65001 >nul 2>nul
4
+
5
+ cd /d "%~dp0"
6
+
7
+ REM --- Colores ANSI (con fallback) ---
8
+ for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
9
+ if "!ESC!"=="" (
10
+ set "C_CY=" & set "C_BC=" & set "C_GR=" & set "C_YE="
11
+ set "C_RE=" & set "C_GY=" & set "C_WH=" & set "C_RS="
12
+ ) else (
13
+ set "C_CY=!ESC![36m" & set "C_BC=!ESC![96m"
14
+ set "C_GR=!ESC![32m" & set "C_YE=!ESC![33m"
15
+ set "C_RE=!ESC![31m" & set "C_GY=!ESC![90m"
16
+ set "C_WH=!ESC![97m" & set "C_RS=!ESC![0m"
17
+ )
18
+
19
+ REM --- Args ---
20
+ if /i "%~1"=="ayuda" goto :ayuda
21
+ if /i "%~1"=="--help" goto :ayuda
22
+ if /i "%~1"=="-h" goto :ayuda
23
+ if /i "%~1"=="listar" goto :listar
24
+ if /i "%~1"=="crear" goto :crear
25
+ if /i "%~1"=="volver" goto :volver_arg
26
+ goto :menu
27
+
28
+ REM ============================================================
29
+ REM MENU PRINCIPAL
30
+ REM ============================================================
31
+ :menu
32
+ echo.
33
+ echo !C_CY!============================================!C_RS!
34
+ echo !C_BC! SNAPSHOTS!C_RS! !C_GY!- Copias de seguridad!C_RS!
35
+ echo !C_CY!============================================!C_RS!
36
+ echo.
37
+ echo !C_GY!Un snapshot es una copia completa del proyecto.!C_RS!
38
+ echo !C_GY!Sirve para volver atras si algo se rompe.!C_RS!
39
+ echo.
40
+
41
+ call :count
42
+ if !SNAP_COUNT! EQU 0 (
43
+ echo !C_GY!No hay snapshots todavia.!C_RS!
44
+ ) else (
45
+ echo !C_CY!.!C_RS! !C_GY!Snapshots disponibles:!C_RS! !C_WH!!SNAP_COUNT!!C_RS!
46
+ echo.
47
+ call :list_short
48
+ )
49
+ echo.
50
+
51
+ echo !C_CY!------------------------------------------------------------!C_RS!
52
+ echo !C_BC! QUE QUIERES HACER?!C_RS!
53
+ echo !C_CY!------------------------------------------------------------!C_RS!
54
+ echo !C_YE![c]!C_RS! Crear snapshot
55
+ if !SNAP_COUNT! GTR 0 (
56
+ echo !C_YE![v]!C_RS! Volver a un snapshot
57
+ )
58
+ echo !C_YE![l]!C_RS! Listar con detalles
59
+ echo !C_YE![Enter]!C_RS! Salir
60
+ echo !C_CY!------------------------------------------------------------!C_RS!
61
+ echo.
62
+
63
+ set "ACTION="
64
+ set /p "ACTION= !C_BC!Opcion!C_RS!: "
65
+
66
+ if /i "!ACTION!"=="c" goto :crear
67
+ if /i "!ACTION!"=="v" goto :volver_prompt
68
+ if /i "!ACTION!"=="l" goto :listar
69
+ goto :end
70
+
71
+ REM ============================================================
72
+ REM CREAR SNAPSHOT
73
+ REM ============================================================
74
+ :crear
75
+ echo.
76
+ echo !C_CY!------------------------------------------------------------!C_RS!
77
+ echo !C_BC! CREAR SNAPSHOT!C_RS!
78
+ echo !C_CY!------------------------------------------------------------!C_RS!
79
+ echo.
80
+ echo !C_GY!Copia todo el proyecto en versiones\!C_RS!
81
+ echo !C_GY!Excluye: .git, versiones, node_modules, audits, etc.!C_RS!
82
+ echo.
83
+
84
+ set "SNAP_NAME="
85
+ set /p "SNAP_NAME= !C_BC!Nombre!C_RS! !C_GY![Enter=Sin definir]!C_RS!: "
86
+ if "!SNAP_NAME!"=="" set "SNAP_NAME=Sin definir"
87
+
88
+ for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmmss"') do set "TS=%%i"
89
+ set "DEST=versiones\!TS!_!SNAP_NAME!"
90
+
91
+ if not exist "versiones" mkdir "versiones"
92
+ if not exist "!DEST!" mkdir "!DEST!"
93
+
94
+ echo.
95
+ echo !C_GY!Copiando archivos...!C_RS!
96
+ robocopy "." "!DEST!" /E /XD .git versiones old_versions backup backups node_modules __pycache__ venv .venv env dist build out cache .cache .parcel-cache .vite .vscode .idea audits /XF *.log *.tmp *.bak *.orig Thumbs.db .DS_Store /NFL /NDL /NJH /NJS /NC /NS /NP >nul
97
+ set "RC=!ERRORLEVEL!"
98
+
99
+ echo.
100
+ if !RC! GEQ 8 (
101
+ echo !C_RE![X]!C_RS! Robocopy fallo con codigo !RC!
102
+ goto :end
103
+ )
104
+
105
+ set "FCOUNT=0"
106
+ for /f %%c in ('dir /b /s "!DEST!" 2^>nul ^| find /c /v ""') do set "FCOUNT=%%c"
107
+
108
+ echo !C_GR![OK]!C_RS! Snapshot creado
109
+ echo.
110
+ echo !C_GY!Ubicacion:!C_RS! !C_WH!!DEST!!C_RS!
111
+ echo !C_GY!Archivos:!C_RS! !C_WH!!FCOUNT!!C_RS!
112
+ echo.
113
+
114
+ goto :end
115
+
116
+ REM ============================================================
117
+ REM LISTAR (short, para menu)
118
+ REM ============================================================
119
+ :list_short
120
+ set "IDX=0"
121
+ for /f "delims=" %%D in ('dir /b /o-n "versiones" 2^>nul') do (
122
+ if !IDX! LSS 3 (
123
+ echo !C_YE![!IDX!]!C_RS! !C_WH!%%D!C_RS!
124
+ )
125
+ set /a IDX+=1
126
+ )
127
+ if !IDX! GTR 3 (
128
+ echo !C_GY!... y !IDX! mas en total!C_RS!
129
+ )
130
+ goto :eof
131
+
132
+ REM ============================================================
133
+ REM LISTAR (full)
134
+ REM ============================================================
135
+ :listar
136
+ call :count
137
+ if !SNAP_COUNT! EQU 0 (
138
+ echo.
139
+ echo !C_GY!No hay snapshots. Crea uno con:!C_RS! !C_WH!snapshots.cmd crear!C_RS!
140
+ goto :end
141
+ )
142
+
143
+ echo.
144
+ echo !C_CY!-------------------------------------------------------------!C_RS!
145
+ echo !C_BC! SNAPSHOTS DISPONIBLES!C_RS!
146
+ echo !C_CY!-------------------------------------------------------------!C_RS!
147
+ echo !C_GY! IDX NOMBRE ARCHIVOS!C_RS!
148
+ echo !C_CY!-------------------------------------------------------------!C_RS!
149
+
150
+ set "IDX=0"
151
+ for /f "delims=" %%D in ('dir /b /o-n "versiones" 2^>nul') do (
152
+ set "S_!IDX!=%%D"
153
+ set "FC=0"
154
+ for /f %%c in ('dir /b /s "versiones\%%D" 2^>nul ^| find /c /v ""') do set "FC=%%c"
155
+ echo !C_YE![!IDX!]!C_RS! !C_WH!%%D!C_RS! !C_GY!(!FC! archivos)!C_RS!
156
+ set /a IDX+=1
157
+ )
158
+
159
+ echo !C_CY!-------------------------------------------------------------!C_RS!
160
+ echo !C_GY!Total: !SNAP_COUNT! snapshots!C_RS!
161
+ echo.
162
+ goto :end
163
+
164
+ REM ============================================================
165
+ REM VOLVER (prompt)
166
+ REM ============================================================
167
+ :volver_prompt
168
+ call :count
169
+ if !SNAP_COUNT! EQU 0 (
170
+ echo !C_RE![X]!C_RS! No hay snapshots.
171
+ goto :end
172
+ )
173
+
174
+ call :listar_body
175
+
176
+ set "RESTORE_IDX="
177
+ set /p "RESTORE_IDX= !C_BC!Indice a restaurar!C_RS! !C_GY![0-!SNAP_COUNT!-1]!C_RS!: "
178
+ if "!RESTORE_IDX!"=="" goto :end
179
+
180
+ call :do_restore "!RESTORE_IDX!"
181
+ goto :end
182
+
183
+ :volver_arg
184
+ if "%~2"=="" (
185
+ echo !C_RE![X]!C_RS! Falta el indice.
186
+ echo !C_GY!Uso: snapshots.cmd volver <indice>!C_RS!
187
+ goto :end
188
+ )
189
+ call :listar_body
190
+ call :do_restore "%~2"
191
+ goto :end
192
+
193
+ REM Cuerpo compartido de listado
194
+ :listar_body
195
+ echo.
196
+ echo !C_CY!-------------------------------------------------------------!C_RS!
197
+ echo !C_BC! SNAPSHOTS DISPONIBLES!C_RS!
198
+ echo !C_CY!-------------------------------------------------------------!C_RS!
199
+ set "IDX=0"
200
+ for /f "delims=" %%D in ('dir /b /o-n "versiones" 2^>nul') do (
201
+ set "S_!IDX!=%%D"
202
+ echo !C_YE![!IDX!]!C_RS! !C_WH!%%D!C_RS!
203
+ set /a IDX+=1
204
+ )
205
+ echo !C_CY!-------------------------------------------------------------!C_RS!
206
+ echo.
207
+ goto :eof
208
+
209
+ REM ============================================================
210
+ REM DO RESTORE
211
+ REM ============================================================
212
+ :do_restore
213
+ set "TARGET=%~1"
214
+ set "SNAP_NAME=!S_%TARGET%!"
215
+
216
+ if "!SNAP_NAME!"=="" (
217
+ echo !C_RE![X]!C_RS! Indice !TARGET! no existe.
218
+ goto :eof
219
+ )
220
+
221
+ set "SNAP_PATH=versiones\!SNAP_NAME!"
222
+ if not exist "!SNAP_PATH!" (
223
+ echo !C_RE![X]!C_RS! Snapshot no encontrado: !SNAP_PATH!
224
+ goto :eof
225
+ )
226
+
227
+ echo !C_CY!------------------------------------------------------------!C_RS!
228
+ echo !C_BC! CONFIRMAR RESTAURACION!C_RS!
229
+ echo !C_CY!------------------------------------------------------------!C_RS!
230
+ echo.
231
+ echo !C_GY!Snapshot:!C_RS! !C_WH!!SNAP_NAME!!C_RS!
232
+ echo !C_GY!Modo:!C_RS! !C_WH!overlay (no borra archivos)!C_RS!
233
+ echo.
234
+ echo !C_GY!Se creara un backup automatico antes de restaurar.!C_RS!
235
+ echo !C_YE!ATENCION: los cambios actuales pueden perderse.!C_RS!
236
+ echo.
237
+
238
+ set "CONFIRM="
239
+ set /p "CONFIRM= !C_BC!Escribe SI para confirmar!C_RS!: "
240
+ if /i not "!CONFIRM!"=="SI" (
241
+ echo !C_GY!Cancelado.!C_RS!
242
+ goto :eof
243
+ )
244
+
245
+ REM --- Backup pre-restore ---
246
+ echo.
247
+ echo !C_GY!Creando backup de seguridad...!C_RS!
248
+ for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmmss"') do set "TS=%%i"
249
+ set "PREBK=versiones\!TS!_pre-restore"
250
+
251
+ if not exist "!PREBK!" mkdir "!PREBK!"
252
+ robocopy "." "!PREBK!" /E /XD .git versiones old_versions backup backups node_modules __pycache__ venv .venv env dist build out cache .cache .parcel-cache .vite .vscode .idea audits /XF *.log *.tmp *.bak *.orig Thumbs.db .DS_Store /NFL /NDL /NJH /NJS /NC /NS /NP >nul
253
+ echo !C_GR![OK]!C_RS! Backup: !C_WH!!PREBK!!C_RS!
254
+ echo.
255
+
256
+ REM --- Restore ---
257
+ echo !C_GY!Restaurando archivos...!C_RS!
258
+ robocopy "!SNAP_PATH!" "." /E /XD .git versiones audits /XF *.log *.tmp /NFL /NDL /NJH /NJS /NC /NS /NP >nul
259
+ set "RC=!ERRORLEVEL!"
260
+
261
+ echo.
262
+ if !RC! GEQ 8 (
263
+ echo !C_RE![X]!C_RS! Restauracion fallo con codigo !RC!
264
+ echo !C_GY!Puedes volver al estado previo con:!C_RS! !C_WH!snapshots.cmd volver!C_RS!
265
+ goto :eof
266
+ )
267
+
268
+ echo !C_GR![OK]!C_RS! Snapshot restaurado.
269
+ echo.
270
+ echo !C_GY!Si algo salio mal, tu estado previo esta en:!C_RS!
271
+ echo !C_WH!!PREBK!!C_RS!
272
+ echo.
273
+ goto :eof
274
+
275
+ REM ============================================================
276
+ REM CONTAR
277
+ REM ============================================================
278
+ :count
279
+ set "SNAP_COUNT=0"
280
+ if exist "versiones" (
281
+ for /f %%c in ('dir /b /ad "versiones" 2^>nul ^| find /c /v ""') do set "SNAP_COUNT=%%c"
282
+ )
283
+ goto :eof
284
+
285
+ REM ============================================================
286
+ REM AYUDA
287
+ REM ============================================================
288
+ :ayuda
289
+ echo.
290
+ echo !C_CY!============================================!C_RS!
291
+ echo !C_BC! SNAPSHOTS!C_RS! !C_GY!- Ayuda!C_RS!
292
+ echo !C_CY!============================================!C_RS!
293
+ echo.
294
+ echo !C_BC!USO:!C_RS!
295
+ echo !C_WH!snapshots.cmd!C_RS! Menu interactivo
296
+ echo !C_WH!snapshots.cmd crear!C_RS! Crear snapshot
297
+ echo !C_WH!snapshots.cmd listar!C_RS! Listar snapshots
298
+ echo !C_WH!snapshots.cmd volver <idx>!C_RS! Restaurar por indice
299
+ echo !C_WH!snapshots.cmd --help!C_RS! Esta ayuda
300
+ echo.
301
+ echo !C_BC!FLUJO TIPICO:!C_RS!
302
+ echo !C_GY!1. Antes de un cambio riesgoso:!C_RS!
303
+ echo !C_WH!snapshots.cmd crear!C_RS! !C_GY!(nombre: antes de refactor)!C_RS!
304
+ echo !C_GY!2. Haces los cambios...!C_RS!
305
+ echo !C_GY!3. Si algo se rompe:!C_RS!
306
+ echo !C_WH!snapshots.cmd volver 0!C_RS!
307
+ echo.
308
+ echo !C_BC!SEGURIDAD:!C_RS!
309
+ echo !C_GY!- Preview antes de restaurar!C_RS!
310
+ echo !C_GY!- Confirmacion con "SI" mayusculas!C_RS!
311
+ echo !C_GY!- Backup automatico pre-restore!C_RS!
312
+ echo !C_GY!- Modo overlay (no borra archivos)^^!C_RS!
313
+ echo.
314
+ goto :end
315
+
316
+ :end
317
+ call :shell_if_double_click
318
+ endlocal
319
+ exit /b 0
320
+
321
+ :shell_if_double_click
322
+ if "%NO_PAUSE%"=="1" goto :eof
323
+ echo %cmdcmdline% | find /i "%~nx0" >nul
324
+ if errorlevel 1 goto :eof
325
+ echo.
326
+ echo !C_GY!Sesion interactiva. Escribe 'exit' para cerrar.!C_RS!
327
+ echo.
328
+ cmd /k
329
+ goto :eof
@@ -0,0 +1,97 @@
1
+ @echo off
2
+ setlocal EnableDelayedExpansion
3
+ chcp 65001 >nul 2>nul
4
+
5
+ cd /d "%~dp0"
6
+
7
+ REM --- Colores ANSI (con fallback) ---
8
+ for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
9
+ if "!ESC!"=="" (
10
+ set "C_CY=" & set "C_BC=" & set "C_GR=" & set "C_YE="
11
+ set "C_RE=" & set "C_GY=" & set "C_WH=" & set "C_RS="
12
+ ) else (
13
+ set "C_CY=!ESC![36m" & set "C_BC=!ESC![96m"
14
+ set "C_GR=!ESC![32m" & set "C_YE=!ESC![33m"
15
+ set "C_RE=!ESC![31m" & set "C_GY=!ESC![90m"
16
+ set "C_WH=!ESC![97m" & set "C_RS=!ESC![0m"
17
+ )
18
+
19
+ echo.
20
+ echo !C_CY!============================================!C_RS!
21
+ echo !C_BC! SUBIR!C_RS! !C_GY!- Push a GitHub!C_RS!
22
+ echo !C_CY!============================================!C_RS!
23
+ echo.
24
+
25
+ if not exist ".git" (
26
+ echo !C_RE![X]!C_RS! No hay repositorio Git. Ejecuta: !C_WH!init.cmd!C_RS!
27
+ call :shell_if_double_click
28
+ exit /b 1
29
+ )
30
+
31
+ git diff --cached --quiet
32
+ set "STAGED=!ERRORLEVEL!"
33
+ git diff --quiet
34
+ set "UNSTAGED=!ERRORLEVEL!"
35
+
36
+ if !STAGED! NEQ 0 goto :has_changes
37
+ if !UNSTAGED! NEQ 0 goto :has_changes
38
+ goto :check_remote
39
+
40
+ :has_changes
41
+ echo !C_YE![!]!C_RS! Hay cambios sin commitear.
42
+ echo.
43
+ set "SAVE="
44
+ set /p "SAVE= !C_BC!Guardar cambios primero?!C_RS! !C_GY![S/n]!C_RS!: "
45
+ if /i "!SAVE!"=="n" goto :check_remote
46
+ echo.
47
+ set "SKIP_HISTORIAL=1"
48
+ set "NO_PAUSE=1"
49
+ call "guardar.cmd"
50
+ set "SKIP_HISTORIAL="
51
+ set "NO_PAUSE="
52
+ echo.
53
+
54
+ :check_remote
55
+ git remote get-url origin >nul 2>nul
56
+ if errorlevel 1 (
57
+ echo !C_RE![X]!C_RS! No hay remote 'origin' configurado.
58
+ echo.
59
+ echo !C_GY!Para vincular tu repo a GitHub:!C_RS!
60
+ echo.
61
+ echo !C_WH!git remote add origin https://github.com/TU-USUARIO/TU-REPO.git!C_RS!
62
+ echo.
63
+ call :shell_if_double_click
64
+ exit /b 1
65
+ )
66
+
67
+ echo !C_GY!Subiendo a GitHub...!C_RS!
68
+ echo.
69
+
70
+ git push -u origin main
71
+ set "RC=!ERRORLEVEL!"
72
+
73
+ echo.
74
+ if !RC! EQU 0 (
75
+ echo !C_GR![OK]!C_RS! Push completado
76
+ ) else (
77
+ echo !C_RE![ERROR]!C_RS! Push fallo con codigo !RC!
78
+ )
79
+ echo.
80
+
81
+ set "NO_PAUSE=1"
82
+ call "%~dp0historial.cmd"
83
+ set "NO_PAUSE="
84
+
85
+ call :shell_if_double_click
86
+ endlocal
87
+ exit /b 0
88
+
89
+ :shell_if_double_click
90
+ if "%NO_PAUSE%"=="1" goto :eof
91
+ echo %cmdcmdline% | find /i "%~nx0" >nul
92
+ if errorlevel 1 goto :eof
93
+ echo.
94
+ echo !C_GY!Sesion interactiva. Escribe 'exit' para cerrar.!C_RS!
95
+ echo.
96
+ cmd /k
97
+ goto :eof
package/tests/test.cmd ADDED
@@ -0,0 +1,155 @@
1
+ @echo off
2
+ setlocal EnableDelayedExpansion
3
+ chcp 65001 >nul 2>nul
4
+
5
+ echo.
6
+ echo ============================================
7
+ echo forgeGit - Tests
8
+ echo ============================================
9
+ echo.
10
+
11
+ set "FORGE_HOME=%~dp0.."
12
+ set "TEMP_DIR=%TEMP%\forge_test_%RANDOM%%RANDOM%"
13
+ set "PASS=0"
14
+ set "FAIL=0"
15
+
16
+ echo [SETUP] Creando: %TEMP_DIR%
17
+ mkdir "%TEMP_DIR%" 2>nul
18
+ cd /d "%TEMP_DIR%"
19
+
20
+ REM ============================================================
21
+ REM TEST 1: forge instala correctamente
22
+ REM ============================================================
23
+ echo.
24
+ echo [TEST 1] Ejecutando forge...
25
+ call "%FORGE_HOME%\tools\bin\forge.cmd" < nul >nul 2>nul
26
+
27
+ REM Check archivos core
28
+ if exist "init.cmd" (
29
+ echo [OK] init.cmd creado
30
+ set /a PASS+=1
31
+ ) else (
32
+ echo [X] init.cmd NO creado
33
+ set /a FAIL+=1
34
+ )
35
+
36
+ if exist "config.cmd" (
37
+ echo [OK] config.cmd creado
38
+ set /a PASS+=1
39
+ ) else (
40
+ echo [X] config.cmd NO creado
41
+ set /a FAIL+=1
42
+ )
43
+
44
+ REM Check 7 helpers
45
+ for %%F in (guardar subir snapshots historial abrir auditar) do (
46
+ if exist "%%F.cmd" (
47
+ echo [OK] %%F.cmd creado
48
+ set /a PASS+=1
49
+ ) else (
50
+ echo [X] %%F.cmd NO creado
51
+ set /a FAIL+=1
52
+ )
53
+ )
54
+
55
+ REM Check carpetas
56
+ if exist "lib\ui.cmd" (
57
+ echo [OK] lib\ui.cmd presente
58
+ set /a PASS+=1
59
+ ) else (
60
+ echo [X] lib\ui.cmd NO presente
61
+ set /a FAIL+=1
62
+ )
63
+
64
+ if exist "templates\abrir.cmd.tpl" (
65
+ echo [OK] templates\abrir.cmd.tpl presente
66
+ set /a PASS+=1
67
+ ) else (
68
+ echo [X] templates\abrir.cmd.tpl NO presente
69
+ set /a FAIL+=1
70
+ )
71
+
72
+ REM Check git
73
+ if exist ".git" (
74
+ echo [OK] repositorio git inicializado
75
+ set /a PASS+=1
76
+ ) else (
77
+ echo [X] repositorio git NO inicializado
78
+ set /a FAIL+=1
79
+ )
80
+
81
+ REM Check tag
82
+ git tag -l 2>nul | findstr "v1.0.0" >nul
83
+ if not errorlevel 1 (
84
+ echo [OK] tag v1.0.0 creado
85
+ set /a PASS+=1
86
+ ) else (
87
+ echo [X] tag v1.0.0 NO creado
88
+ set /a FAIL+=1
89
+ )
90
+
91
+ REM ============================================================
92
+ REM TEST 2: forge update no rompe nada
93
+ REM ============================================================
94
+ echo.
95
+ echo [TEST 2] Ejecutando forge update...
96
+ call "%FORGE_HOME%\tools\bin\forge.cmd" update < nul >nul 2>nul
97
+
98
+ if exist "init.cmd" (
99
+ echo [OK] init.cmd sigue presente
100
+ set /a PASS+=1
101
+ ) else (
102
+ echo [X] init.cmd desaparecio
103
+ set /a FAIL+=1
104
+ )
105
+
106
+ REM ============================================================
107
+ REM TEST 3: forge detecta instalacion previa
108
+ REM ============================================================
109
+ echo.
110
+ echo [TEST 3] Ejecutando forge de nuevo (sin confirmar)...
111
+ echo n | call "%FORGE_HOME%\tools\bin\forge.cmd" >nul 2>nul
112
+
113
+ if exist "init.cmd" (
114
+ echo [OK] init.cmd intacto tras cancelacion
115
+ set /a PASS+=1
116
+ ) else (
117
+ echo [X] init.cmd se corrompio
118
+ set /a FAIL+=1
119
+ )
120
+
121
+ REM ============================================================
122
+ REM CLEANUP
123
+ REM ============================================================
124
+ echo.
125
+ echo [CLEANUP] Borrando %TEMP_DIR%
126
+ cd /d "%TEMP%"
127
+ rmdir /s /q "%TEMP_DIR%" 2>nul
128
+
129
+ REM ============================================================
130
+ REM RESULTADO
131
+ REM ============================================================
132
+ echo.
133
+ echo ============================================
134
+ echo Resultado
135
+ echo ============================================
136
+ echo.
137
+ echo PASS: !PASS!
138
+ echo FAIL: !FAIL!
139
+ echo.
140
+
141
+ if !FAIL! GTR 0 (
142
+ echo ============================================
143
+ echo [X] TESTS FALLARON
144
+ echo ============================================
145
+ echo.
146
+ pause
147
+ exit /b 1
148
+ )
149
+
150
+ echo ============================================
151
+ echo [OK] TODOS LOS TESTS PASARON
152
+ echo ============================================
153
+ echo.
154
+ pause
155
+ exit /b 0
@@ -0,0 +1,7 @@
1
+ @echo off
2
+ setlocal
3
+ chcp 65001 >nul 2>nul
4
+
5
+ call "%~dp0forge.cmd" update
6
+ endlocal
7
+ exit /b 0