2025-09-27 21:52:48 +01:00
|
|
|
@ECHO OFF
|
2025-10-01 02:25:38 +01:00
|
|
|
SETLOCAL DISABLEDELAYEDEXPANSION
|
2025-09-27 21:52:48 +01:00
|
|
|
|
|
|
|
|
IF "%1" == "install" (
|
|
|
|
|
CALL :Install
|
|
|
|
|
) ELSE (
|
|
|
|
|
IF "%1" == "pull" (
|
|
|
|
|
CALL :Pull
|
|
|
|
|
) ELSE (
|
2025-10-01 02:25:38 +01:00
|
|
|
ECHO usage: %0 ^<install^|pull^|diff^>
|
2025-09-27 21:52:48 +01:00
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
GOTO :EOF
|
|
|
|
|
|
|
|
|
|
:Install
|
2025-10-01 02:25:38 +01:00
|
|
|
ECHO [Info] :: Installing dotfiles
|
2025-09-27 21:52:48 +01:00
|
|
|
|
2025-10-01 02:25:38 +01:00
|
|
|
XCOPY /E /I /Y /Q "config\nvim" "%LOCALAPPDATA%\nvim" > NUL
|
|
|
|
|
COPY /Y "config\starship.toml" "%APPDATA%\" > NUL
|
|
|
|
|
COPY /Y "config\clink\inputrc" "%LOCALAPPDATA%\.inputrc" > NUL
|
|
|
|
|
|
|
|
|
|
CALL :Patch %APPDATA%\starship.toml
|
2025-09-27 21:52:48 +01:00
|
|
|
|
|
|
|
|
WHERE /q "starship"
|
|
|
|
|
IF %ERRORLEVEL% equ 0 (
|
|
|
|
|
IF NOT EXIST "%LOCALAPPDATA%\clink" ( MKDIR "%LOCALAPPDATA%\clink" )
|
2025-10-01 02:25:38 +01:00
|
|
|
COPY "config\clink\starship.lua" "%LOCALAPPDATA%\clink\" > NUL
|
2025-09-27 21:52:48 +01:00
|
|
|
)
|
|
|
|
|
GOTO :EOF
|
|
|
|
|
|
|
|
|
|
:Pull
|
2025-10-01 02:25:38 +01:00
|
|
|
ECHO [Info] :: Pulling dotfile changes
|
|
|
|
|
|
|
|
|
|
XCOPY /E /I /Y "%LOCALAPPDATA%\nvim" "config\nvim"
|
|
|
|
|
COPY /Y "%LOCALAPPDATA%\.inputrc" "config\clink\inputrc"
|
|
|
|
|
GOTO :EOF
|
|
|
|
|
|
|
|
|
|
:Patch
|
|
|
|
|
SET "PREFIX=#%COMPUTERNAME% "
|
|
|
|
|
SET "REPLACEMENT="
|
|
|
|
|
|
|
|
|
|
SET "TEMPFILE=%TEMP%\tmpdots%RANDOM%"
|
|
|
|
|
|
|
|
|
|
FOR /f "DELIMS=" %%A in ('FINDSTR /N "^" "%1"') DO (
|
|
|
|
|
SET "LINE=%%A"
|
|
|
|
|
|
|
|
|
|
SETLOCAL ENABLEDELAYEDEXPANSION
|
|
|
|
|
SET "LINE=!LINE:%PREFIX%=%REPLACEMENT%!"
|
|
|
|
|
SET "LINE=!LINE:*:=!"
|
|
|
|
|
|
|
|
|
|
ECHO:!LINE!>> %TEMPFILE%
|
|
|
|
|
|
|
|
|
|
ENDLOCAL
|
|
|
|
|
)
|
2025-09-27 21:52:48 +01:00
|
|
|
|
2025-10-01 02:25:38 +01:00
|
|
|
MOVE /Y %TEMPFILE% %1 > NUL
|
2025-09-27 21:52:48 +01:00
|
|
|
GOTO :EOF
|