@echo off
rem ===========================================================================
rem  EmbedDraw / PLABEL STD  -  Migracion de fuentes de 3.1 a 3.2
rem
rem  Actualiza *.pas, *.dfm y *.fmx del directorio indicado y sus subcarpetas:
rem    - Clases  TMPLxxx     -> TEDWxxx      (160 renombrados verificados)
rem    - TMPLabelVCL / FMX   -> TEmbedDrawVCL / TEmbedDrawFMX
rem    - Propiedad  PLabel   -> EmbedDraw    (Editor, Inspector, ViewLibrary
rem                                           y Preview, en codigo y en DFM)
rem
rem  NO toca los tipos TMPLxxx que siguen existiendo en 3.2 (TMPLUnits,
rem  TMPLItemType, TMPLPto, TMPLEditorMode, TMPLayerOpts...): la tabla de
rem  renombrados es explicita, no una sustitucion de prefijo.
rem
rem  Uso:
rem    Migrar_EmbedDraw_3_2.bat                     directorio actual
rem    Migrar_EmbedDraw_3_2.bat C:\MiProyecto       ese directorio
rem    Migrar_EmbedDraw_3_2.bat C:\MiProyecto /n    simulacion, no escribe
rem    Migrar_EmbedDraw_3_2.bat C:\MiProyecto /s    sin copia de seguridad
rem ===========================================================================
setlocal EnableExtensions

set "TARGET=%~1"
if not defined TARGET set "TARGET=%CD%"
if "%TARGET:~0,1%"=="/" set "TARGET=%CD%"

set "PSARGS="
for %%A in (%*) do (
  if /I "%%~A"=="/n"        set "PSARGS=%PSARGS% -DryRun"
  if /I "%%~A"=="/dryrun"   set "PSARGS=%PSARGS% -DryRun"
  if /I "%%~A"=="/s"        set "PSARGS=%PSARGS% -NoBackup"
  if /I "%%~A"=="/nobackup" set "PSARGS=%PSARGS% -NoBackup"
)

if not exist "%TARGET%\" (
  echo ERROR: no existe el directorio "%TARGET%".
  exit /b 1
)

set "BATSELF=%~f0"
set "TMPPS=%TEMP%\Migrar_EmbedDraw_3_2_%RANDOM%%RANDOM%.ps1"
set "TMPPS_OUT=%TMPPS%"

powershell -NoProfile -ExecutionPolicy Bypass -Command "$t=[IO.File]::ReadAllText($env:BATSELF);$i=$t.LastIndexOf('#---PS---');[IO.File]::WriteAllText($env:TMPPS_OUT,$t.Substring($i+9),(New-Object Text.UTF8Encoding $true))"
if not exist "%TMPPS%" (
  echo ERROR: no se ha podido preparar el script de migracion.
  exit /b 1
)

powershell -NoProfile -ExecutionPolicy Bypass -File "%TMPPS%" -Path "%TARGET%"%PSARGS%
set "RC=%ERRORLEVEL%"
del "%TMPPS%" >nul 2>nul
exit /b %RC%

#---PS---
