diff --git a/devTools/concatFiles.bat b/devTools/concatFiles.bat index 0d4cc2e819a5c2f48363983a41d554ffc6bac05c..3da9527a846693b3f9a9c87fea44c70c5b48e6f4 100644 --- a/devTools/concatFiles.bat +++ b/devTools/concatFiles.bat @@ -1,29 +1,15 @@ @echo off :: Concatenates files from dir %1 specified with wildcard %2 and outputs result to %3 -:: temporary codepage change to avoid mojibake -FOR /f "tokens=2 delims=:." %%x IN ('CHCP') DO SET _CP=%%x -CHCP 65001 > NUL - :: TODO Proper temp file instead of bin\list.txt IF EXIST %3 DEL %3 SET _LISTFILE="bin\list.txt" - -:: Collect sorted list of files -ECHO "Ignore the first line to skip the BOM" >%_LISTFILE% -(FOR /R "%~1" %%F IN (%2) DO echo "%%F") | sort >>%_LISTFILE% - -:: If we have powershell available, strip the absolute path information -:: If not, fail silently (which is fine, but will leak path information into the built file) -powershell -command "" 2> NUL -IF %ERRORLEVEL% EQU 0 powershell -command "(get-content -path %_LISTFILE% -raw -encoding utf8) -replace [regex]::escape('%CD%'),'' -replace '\"','' ^| set-content -encoding utf8 -path %_LISTFILE%" - -:: Append the files -(FOR /F "skip=1 usebackq delims=" %%F IN (`type "%_LISTFILE%"`) DO ( +>%_LISTFILE% (FOR /R "%~1" %%F IN (%2) DO echo "%%F") +sort /O %_LISTFILE% %_LISTFILE% +(FOR /F "usebackq delims=" %%F IN (`type "%_LISTFILE%"`) DO ( echo /* %%F */ >> %3 - copy /b %3+"%CD%%%F" %3 1>NUL + copy /b %3+%%F %3 1>NUL ) ) DEL %_LISTFILE% -CHCP %_CP% > NUL \ No newline at end of file