Merge-second attempt

This commit is contained in:
claustromaniac 2017-11-27 16:05:20 +00:00
parent 621a7f81d8
commit fc2075e37c

View file

@ -3,7 +3,7 @@ TITLE ghacks user.js updater
REM ### ghacks-user.js updater for Windows REM ### ghacks-user.js updater for Windows
REM ## author: @claustromaniac REM ## author: @claustromaniac
REM ## version: 3.0 REM ## version: 3.0-alpha92
SET _myname=%~n0 SET _myname=%~n0
SET _myparams=%* SET _myparams=%*
@ -28,6 +28,7 @@ IF /I "%~1"=="-multioverrides" (
IF /I "%~1"=="-merge" ( IF /I "%~1"=="-merge" (
SET _merge=1 SET _merge=1
) )
REM case-sensitive check because we need to strip it from params
IF "%~1"=="-updatebatch" ( IF "%~1"=="-updatebatch" (
SET _updateb=1 SET _updateb=1
) )
@ -59,40 +60,6 @@ IF DEFINED _updateb (
) )
) )
GOTO begin GOTO begin
REM ###### Merge function ######
:merge
DEL /F %2 2>nul
FOR /F "tokens=* delims=" %%G IN (%1) DO (
SET _pref=%%G
SET "_temp=!_pref: =!"
IF /I "!_temp!"=="!_temp:user.js.parrot=!" (
IF /I "user"=="!_temp:~0,4!" (
FOR /F "delims=," %%S IN ("!_pref!") DO (
SET _pref=%%S
)
SET _pref=!_pref:"=""!
FIND /I "!_pref!" %2 >nul 2>&1
IF ERRORLEVEL 1 (
FIND /I "!_pref!" %1 >temp1
FOR /F "tokens=* delims=" %%X IN (temp1) DO (
SET _temp=%%X
SET "_temp=!_temp: =!"
IF /I "user"=="!_temp:~0,4!" (
SET _pref=%%X
)
)
ECHO !_pref!>>%2
)
) ELSE (
ECHO !_pref!>>%2
)
) ELSE (
ECHO !_pref!>>%2
)
)
DEL /F %1 temp1 2>nul
EXIT /B
REM ############################
:begin :begin
SET /A "_line=0" SET /A "_line=0"
IF NOT EXIST user.js ( IF NOT EXIST user.js (
@ -116,7 +83,7 @@ IF NOT EXIST user.js (
:exitloop :exitloop
IF !_line! GEQ 4 ( IF !_line! GEQ 4 (
IF /I NOT "!_name!"=="!_name:ghacks=X!" ( IF /I NOT "!_name!"=="!_name:ghacks=X!" (
ECHO ghacks user.js !_version:*version=version!,!_date! ECHO ghacks user.js !_version:~2!,!_date!
) ELSE ( ) ELSE (
ECHO Current user.js version not recognised. ECHO Current user.js version not recognised.
) )
@ -132,9 +99,7 @@ IF NOT DEFINED _ua (
REM ECHO Visit the wiki for more detailed information. REM ECHO Visit the wiki for more detailed information.
REM ECHO. REM ECHO.
CHOICE /M "Continue" CHOICE /M "Continue"
IF ERRORLEVEL 2 ( IF ERRORLEVEL 2 EXIT /B
EXIT /B
)
) )
CLS CLS
ECHO. ECHO.
@ -151,7 +116,7 @@ IF DEFINED _log (
ECHO. ECHO.
) )
IF EXIST user.js ( IF EXIST user.js (
REN user.js.bak user.js.old.bak >nul 2>&1 IF EXIST user.js.bak REN user.js.bak user.js.old.bak
REN user.js user.js.bak REN user.js user.js.bak
ECHO Current user.js file backed up. ECHO Current user.js file backed up.
ECHO. ECHO.
@ -168,7 +133,6 @@ IF EXIST user.js (
ECHO. ECHO.
ECHO Merging... ECHO Merging...
ECHO. ECHO.
DEL /F user-overrides-merged.js temp2 2>nul
COPY /B /V /Y user.js-overrides\*.js user-overrides COPY /B /V /Y user.js-overrides\*.js user-overrides
CALL :merge user-overrides user-overrides-merged.js CALL :merge user-overrides user-overrides-merged.js
COPY /B /V /Y user.js+user-overrides-merged.js temp2 COPY /B /V /Y user.js+user-overrides-merged.js temp2
@ -205,12 +169,12 @@ IF EXIST user.js (
ECHO. ECHO.
ECHO. ECHO.
IF "!changed!"=="true" ( IF "!changed!"=="true" (
DEL /F user.js.old.bak 2>nul IF EXIST user.js.old.bak DEL /F user.js.old.bak
ECHO Update complete. ECHO Update complete.
) ELSE ( ) ELSE (
IF "!changed!"=="false" ( IF "!changed!"=="false" (
DEL /F user.js.bak DEL /F user.js.bak
REN user.js.old.bak user.js.bak >nul 2>&1 IF EXIST user.js.old.bak REN user.js.old.bak user.js.bak
ECHO Update completed without changes. ECHO Update completed without changes.
) ELSE ( ) ELSE (
ECHO Update complete. ECHO Update complete.
@ -218,8 +182,8 @@ IF EXIST user.js (
) )
ECHO. ECHO.
) ELSE ( ) ELSE (
REN user.js.bak user.js >nul 2>&1 IF EXIST user.js.bak REN user.js.bak user.js
REN user.js.old.bak user.js.bak >nul 2>&1 IF EXIST user.js.old.bak REN user.js.old.bak user.js.bak
ECHO. ECHO.
ECHO Update failed. Make sure PowerShell is allowed internet access. ECHO Update failed. Make sure PowerShell is allowed internet access.
ECHO. ECHO.
@ -229,3 +193,45 @@ IF EXIST user.js (
IF NOT DEFINED _log ( IF NOT DEFINED _log (
IF NOT DEFINED _ua PAUSE IF NOT DEFINED _ua PAUSE
) )
EXIT /B
REM ###### Merge function ######
:merge
DEL /F %2 2>nul
SETLOCAL disabledelayedexpansion
FOR /F "tokens=1,* delims=]" %%G IN ('find /n /v "" ^< "%~1"') DO (
SET "_pref=%%H"
SETLOCAL enabledelayedexpansion
SET "_temp=!_pref: =!"
IF /I "user_pref"=="!_temp:~0,9!" (
IF /I NOT "user.js.parrot"=="!_temp:~12,14!" (
FOR /F "delims=," %%S IN ("!_pref!") DO (
SET "_pref=%%S"
)
SET _pref=!_pref:"=""!
FIND /I "!_pref!" %~2 >nul 2>&1
IF ERRORLEVEL 1 (
FIND /I "!_pref!" %~1 >temp123
FOR /F "tokens=* delims=" %%X IN (temp123) DO (
SET "_temp=%%X"
SET "_temp=!_temp: =!"
IF /I "user_pref"=="!_temp:~0,9!" (
SET "_pref=%%X"
)
)
ECHO(!_pref!>>%~2
)
) ELSE (
ECHO(!_pref!>>%~2
)
) ELSE (
ECHO(!_pref!>>%~2
)
ENDLOCAL
)
ENDLOCAL
DEL /F %~1 temp123 >nul
GOTO EOF
REM ############################
:EOF