forgegit 1.3.0 → 1.4.1
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.
- package/.forge/commands/.gitkeep +0 -0
- package/.forge/commands/abrir.cmd +51 -0
- package/.forge/commands/auditar.cmd +340 -0
- package/.forge/commands/historial.cmd +85 -0
- package/.forge/commands/push.cmd +97 -0
- package/.forge/commands/save.cmd +73 -0
- package/.forge/commands/snapshots.cmd +329 -0
- package/.forge/init.cmd +200 -0
- package/.forge/lib/.gitkeep +0 -0
- package/.forge/lib/git-ops.cmd +92 -0
- package/.forge/lib/templates.cmd +98 -0
- package/.forge/lib/ui.cmd +59 -0
- package/.forge/templates/.gitkeep +0 -0
- package/.forge/templates/abrir.cmd.tpl +51 -0
- package/.forge/templates/auditar.cmd.tpl +340 -0
- package/.forge/templates/forge.cmd.tpl +114 -0
- package/.forge/templates/gitignore.tpl +78 -0
- package/.forge/templates/historial.cmd.tpl +85 -0
- package/.forge/templates/push.cmd.tpl +97 -0
- package/.forge/templates/readme.md.tpl +34 -0
- package/.forge/templates/save.cmd.tpl +73 -0
- package/.forge/templates/serve-static.js +86 -0
- package/.forge/templates/serve.cmd.tpl +209 -0
- package/.forge/templates/snapshots.cmd.tpl +329 -0
- package/MANUAL.md +61 -68
- package/config.cmd +14 -14
- package/forge.cmd +114 -0
- package/init.cmd +199 -190
- package/lib/git-ops.cmd +91 -91
- package/lib/templates.cmd +98 -97
- package/lib/ui.cmd +58 -57
- package/package.json +38 -36
- package/templates/forge.cmd.tpl +6 -2
- package/templates/serve-static.js +86 -0
- package/templates/serve.cmd.tpl +209 -0
|
@@ -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
|
package/MANUAL.md
CHANGED
|
@@ -1,68 +1,61 @@
|
|
|
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
|
-
$utf8 = New-Object System.Text.UTF8Encoding($false)
|
|
64
|
-
[System.IO.File]::WriteAllText("$PWD\MANUAL.txt", $content, $utf8)
|
|
65
|
-
|
|
66
|
-
Write-Host " [OK] MANUAL.txt creado" -ForegroundColor Green
|
|
67
|
-
Write-Host ""
|
|
68
|
-
Get-Item "MANUAL.txt" | Select-Object Name, Length
|
|
1
|
+
# forgeGit - Manual de uso
|
|
2
|
+
|
|
3
|
+
Guia completa de instalacion, uso y mantenimiento.
|
|
4
|
+
|
|
5
|
+
## Instalacion
|
|
6
|
+
|
|
7
|
+
npm install -g forgegit
|
|
8
|
+
|
|
9
|
+
O descarga el ZIP desde:
|
|
10
|
+
https://github.com/vloitz/forgeGit/releases/latest
|
|
11
|
+
|
|
12
|
+
Requisitos: Windows 10/11, Node.js 18+, Git 2.30+
|
|
13
|
+
|
|
14
|
+
## Uso en un proyecto nuevo
|
|
15
|
+
|
|
16
|
+
cd ruta\del\proyecto
|
|
17
|
+
forge
|
|
18
|
+
|
|
19
|
+
El proyecto queda con Git, .gitignore, README.md, commit inicial,
|
|
20
|
+
tag v1.0.0 y 7 helpers en .forge/commands/.
|
|
21
|
+
|
|
22
|
+
## Comandos disponibles
|
|
23
|
+
|
|
24
|
+
| Comando | Descripcion |
|
|
25
|
+
|---------|-------------|
|
|
26
|
+
| forge save | Commit de cambios |
|
|
27
|
+
| forge push | Push a GitHub |
|
|
28
|
+
| forge log | Ver commits recientes |
|
|
29
|
+
| forge snap | Crear/restaurar snapshots |
|
|
30
|
+
| forge audit | Generar reporte diff |
|
|
31
|
+
| forge open | Abrir en VS Code |
|
|
32
|
+
| forge serve | Servidor de desarrollo (auto-detect) |
|
|
33
|
+
| forge help | Ayuda completa |
|
|
34
|
+
|
|
35
|
+
## Estructura del proyecto
|
|
36
|
+
|
|
37
|
+
MiProyecto/
|
|
38
|
+
├── forge.cmd Menu + CLI
|
|
39
|
+
├── init.cmd Bootstrap
|
|
40
|
+
├── config.cmd Configuracion
|
|
41
|
+
├── .forge/
|
|
42
|
+
│ ├── commands/ 6 helpers
|
|
43
|
+
│ ├── lib/ Modulos internos
|
|
44
|
+
│ ├── templates/ Fuentes .tpl
|
|
45
|
+
│ └── serve-static.js
|
|
46
|
+
└── (tus archivos)
|
|
47
|
+
|
|
48
|
+
## Actualizar
|
|
49
|
+
|
|
50
|
+
npm install -g forgegit@latest
|
|
51
|
+
forge update
|
|
52
|
+
|
|
53
|
+
## Links
|
|
54
|
+
|
|
55
|
+
- Repo: https://github.com/vloitz/forgeGit
|
|
56
|
+
- npm: https://www.npmjs.com/package/forgegit
|
|
57
|
+
- Releases: https://github.com/vloitz/forgeGit/releases
|
|
58
|
+
|
|
59
|
+
## Licencia
|
|
60
|
+
|
|
61
|
+
MIT
|
package/config.cmd
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
REM ============================================================
|
|
2
|
-
REM forge-git / config.cmd
|
|
3
|
-
REM Configuration - edit these values to customize
|
|
4
|
-
REM Called from init.cmd via: call config.cmd
|
|
5
|
-
REM ============================================================
|
|
6
|
-
|
|
7
|
-
set "FG_VERSION=1.
|
|
8
|
-
set "TAG_INITIAL=v1.0.0"
|
|
9
|
-
set "TAG_MESSAGE=Primera version estable"
|
|
10
|
-
set "BRANCH_MAIN=main"
|
|
11
|
-
set "COMMIT_MESSAGE=chore: initial commit"
|
|
12
|
-
|
|
13
|
-
REM --- Exclusions for subir.cmd (robocopy) ---
|
|
14
|
-
set "EXCLUDE_DIRS=.git versiones old_versions backup backups node_modules __pycache__ venv .venv env dist build out cache .cache .parcel-cache .vite .vscode .idea"
|
|
1
|
+
REM ============================================================
|
|
2
|
+
REM forge-git / config.cmd
|
|
3
|
+
REM Configuration - edit these values to customize
|
|
4
|
+
REM Called from init.cmd via: call config.cmd
|
|
5
|
+
REM ============================================================
|
|
6
|
+
|
|
7
|
+
set "FG_VERSION=1.4.1"
|
|
8
|
+
set "TAG_INITIAL=v1.0.0"
|
|
9
|
+
set "TAG_MESSAGE=Primera version estable"
|
|
10
|
+
set "BRANCH_MAIN=main"
|
|
11
|
+
set "COMMIT_MESSAGE=chore: initial commit"
|
|
12
|
+
|
|
13
|
+
REM --- Exclusions for subir.cmd (robocopy) ---
|
|
14
|
+
set "EXCLUDE_DIRS=.git versiones old_versions backup backups node_modules __pycache__ venv .venv env dist build out cache .cache .parcel-cache .vite .vscode .idea"
|
|
15
15
|
set "EXCLUDE_FILES=*.log *.tmp *.bak *.orig Thumbs.db .DS_Store"
|
package/forge.cmd
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
setlocal EnableDelayedExpansion
|
|
3
|
+
chcp 65001 >nul 2>nul
|
|
4
|
+
|
|
5
|
+
cd /d "%~dp0"
|
|
6
|
+
|
|
7
|
+
REM --- Colores ANSI ---
|
|
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
|
+
set "CMD_DIR=.forge\commands"
|
|
20
|
+
|
|
21
|
+
REM --- Verificar instalacion ---
|
|
22
|
+
if not exist "%CMD_DIR%\save.cmd" (
|
|
23
|
+
echo.
|
|
24
|
+
echo !C_RE![X]!C_RS! forgeGit no esta instalado aqui.
|
|
25
|
+
echo !C_GY!Ejecuta desde un proyecto nuevo:!C_RS! forge
|
|
26
|
+
echo.
|
|
27
|
+
pause
|
|
28
|
+
exit /b 1
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
REM --- Modo CLI directo ---
|
|
32
|
+
if not "%~1"=="" (
|
|
33
|
+
if /i "%~1"=="save" ( call "%CMD_DIR%\save.cmd" & exit /b 0 )
|
|
34
|
+
if /i "%~1"=="push" ( call "%CMD_DIR%\push.cmd" & exit /b 0 )
|
|
35
|
+
if /i "%~1"=="snap" ( call "%CMD_DIR%\snapshots.cmd" & exit /b 0 )
|
|
36
|
+
if /i "%~1"=="log" ( call "%CMD_DIR%\historial.cmd" & exit /b 0 )
|
|
37
|
+
if /i "%~1"=="audit" ( call "%CMD_DIR%\auditar.cmd" & exit /b 0 )
|
|
38
|
+
if /i "%~1"=="open" ( call "%CMD_DIR%\abrir.cmd" & exit /b 0 )
|
|
39
|
+
if /i "%~1"=="serve" ( call "%CMD_DIR%\serve.cmd" & exit /b 0 )
|
|
40
|
+
if /i "%~1"=="help" goto :help
|
|
41
|
+
if /i "%~1"=="-h" goto :help
|
|
42
|
+
if /i "%~1"=="--help" goto :help
|
|
43
|
+
echo !C_RE![X]!C_RS! Comando desconocido: %~1
|
|
44
|
+
echo !C_GY!Usa: forge help!C_RS!
|
|
45
|
+
exit /b 1
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
REM ============================================================
|
|
49
|
+
REM MENU PRINCIPAL
|
|
50
|
+
REM ============================================================
|
|
51
|
+
:menu
|
|
52
|
+
cls
|
|
53
|
+
echo.
|
|
54
|
+
echo !C_CY!============================================!C_RS!
|
|
55
|
+
echo !C_BC! forgeGit!C_RS! !C_GY!- Menu!C_RS!
|
|
56
|
+
echo !C_CY!============================================!C_RS!
|
|
57
|
+
echo.
|
|
58
|
+
echo !C_BC!Trabajo diario:!C_RS!
|
|
59
|
+
echo !C_YE![1]!C_RS! Guardar cambios !C_GY!(commit)!C_RS!
|
|
60
|
+
echo !C_YE![2]!C_RS! Subir a GitHub !C_GY!(push)!C_RS!
|
|
61
|
+
echo !C_YE![3]!C_RS! Historial !C_GY!(ver commits)!C_RS!
|
|
62
|
+
echo.
|
|
63
|
+
echo !C_BC!Herramientas:!C_RS!
|
|
64
|
+
echo !C_YE![4]!C_RS! Snapshots !C_GY!(backup/restore)!C_RS!
|
|
65
|
+
echo !C_YE![5]!C_RS! Auditar cambios !C_GY!(diff report)!C_RS!
|
|
66
|
+
echo !C_YE![6]!C_RS! Abrir en VS Code
|
|
67
|
+
echo !C_YE![7]!C_RS! Servidor dev !C_GY!(auto-detect)!C_RS!
|
|
68
|
+
echo.
|
|
69
|
+
echo !C_BC!Sistema:!C_RS!
|
|
70
|
+
echo !C_YE![0]!C_RS! Salir
|
|
71
|
+
echo.
|
|
72
|
+
echo !C_CY!--------------------------------------------!C_RS!
|
|
73
|
+
echo.
|
|
74
|
+
|
|
75
|
+
set "OPT="
|
|
76
|
+
set /p "OPT= !C_BC!Opcion!C_RS!: "
|
|
77
|
+
|
|
78
|
+
if "!OPT!"=="1" ( call "%CMD_DIR%\save.cmd" & echo. & pause & goto :menu )
|
|
79
|
+
if "!OPT!"=="2" ( call "%CMD_DIR%\push.cmd" & echo. & pause & goto :menu )
|
|
80
|
+
if "!OPT!"=="3" ( call "%CMD_DIR%\historial.cmd" & echo. & pause & goto :menu )
|
|
81
|
+
if "!OPT!"=="4" ( call "%CMD_DIR%\snapshots.cmd" & echo. & pause & goto :menu )
|
|
82
|
+
if "!OPT!"=="5" ( call "%CMD_DIR%\auditar.cmd" & echo. & pause & goto :menu )
|
|
83
|
+
if "!OPT!"=="6" ( call "%CMD_DIR%\abrir.cmd" & echo. & pause & goto :menu )
|
|
84
|
+
if "!OPT!"=="7" ( call "%CMD_DIR%\serve.cmd" & echo. & pause & goto :menu )
|
|
85
|
+
if "!OPT!"=="0" goto :end
|
|
86
|
+
if /i "!OPT!"=="q" goto :end
|
|
87
|
+
|
|
88
|
+
goto :menu
|
|
89
|
+
|
|
90
|
+
REM ============================================================
|
|
91
|
+
REM HELP
|
|
92
|
+
REM ============================================================
|
|
93
|
+
:help
|
|
94
|
+
echo.
|
|
95
|
+
echo !C_CY!============================================!C_RS!
|
|
96
|
+
echo !C_BC! forgeGit!C_RS! !C_GY!- Ayuda!C_RS!
|
|
97
|
+
echo !C_CY!============================================!C_RS!
|
|
98
|
+
echo.
|
|
99
|
+
echo !C_BC!USO:!C_RS!
|
|
100
|
+
echo !C_WH!forge!C_RS! Menu interactivo
|
|
101
|
+
echo !C_WH!forge save!C_RS! Guardar cambios
|
|
102
|
+
echo !C_WH!forge push!C_RS! Subir a GitHub
|
|
103
|
+
echo !C_WH!forge snap!C_RS! Snapshots
|
|
104
|
+
echo !C_WH!forge log!C_RS! Historial
|
|
105
|
+
echo !C_WH!forge audit!C_RS! Auditar cambios
|
|
106
|
+
echo !C_WH!forge open!C_RS! Abrir en VS Code
|
|
107
|
+
echo !C_WH!forge serve!C_RS! Servidor de desarrollo
|
|
108
|
+
echo !C_WH!forge help!C_RS! Esta ayuda
|
|
109
|
+
echo.
|
|
110
|
+
goto :end
|
|
111
|
+
|
|
112
|
+
:end
|
|
113
|
+
endlocal
|
|
114
|
+
exit /b 0
|