mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-08-25 07:36:45 +00:00
Added Streamlined Fetcher BAT
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM Config
|
||||
set "REPO=NVIDIA-RTX/Streamline"
|
||||
set "DEST=%~dp0streamline"
|
||||
set "WORKDIR=%TEMP%\streamline_dl_%RANDOM%"
|
||||
set "ZIPFILE=%WORKDIR%\release.zip"
|
||||
set "EXTRACTDIR=%WORKDIR%\extracted"
|
||||
|
||||
echo ==========================
|
||||
echo Streamline files fetcher
|
||||
echo ==========================
|
||||
echo v1.0
|
||||
echo.
|
||||
echo.
|
||||
echo [1] Download latest Streamline DLLs
|
||||
echo.
|
||||
echo [2] Delete "streamline" folder
|
||||
echo.
|
||||
choice /c 12 /n /m "Select an option (1 or 2): "
|
||||
echo.
|
||||
|
||||
if errorlevel 2 goto :removal
|
||||
if errorlevel 1 goto :downloader
|
||||
|
||||
:removal
|
||||
echo.
|
||||
if exist "%DEST%" (
|
||||
echo Deleting "streamline" folder and all its contents...
|
||||
rmdir /s /q "%DEST%"
|
||||
echo Done.
|
||||
) else (
|
||||
echo Folder "streamline" does not exist. Nothing to delete.
|
||||
)
|
||||
echo.
|
||||
pause
|
||||
exit /b 0
|
||||
|
||||
:downloader
|
||||
|
||||
mkdir "%WORKDIR%" 2>nul
|
||||
mkdir "%EXTRACTDIR%" 2>nul
|
||||
if not exist "%DEST%" mkdir "%DEST%"
|
||||
|
||||
REM Locate the latest ZIP release
|
||||
echo --- Looking up latest release info ---
|
||||
echo.
|
||||
powershell -NoProfile -Command ^
|
||||
"$ErrorActionPreference='Stop';" ^
|
||||
"$r = Invoke-RestMethod -Uri 'https://api.github.com/repos/%REPO%/releases/latest' -Headers @{ 'User-Agent' = 'batch-script' };" ^
|
||||
"$asset = $r.assets | Where-Object { $_.name -like '*.zip' } | Select-Object -First 1;" ^
|
||||
"if (-not $asset) { Write-Error 'No .zip asset found in latest release.'; exit 1 }" ^
|
||||
"$asset.browser_download_url | Out-File -Encoding ascii '%WORKDIR%\asset_url.txt';" ^
|
||||
"$asset.name | Out-File -Encoding ascii '%WORKDIR%\asset_name.txt';" ^
|
||||
"Write-Host ('Found asset: ' + $asset.name)"
|
||||
|
||||
if not exist "%WORKDIR%\asset_url.txt" (
|
||||
echo ERROR: Could not determine the latest release asset URL.
|
||||
goto :cleanup_fail
|
||||
)
|
||||
|
||||
set /p ASSET_URL=<"%WORKDIR%\asset_url.txt"
|
||||
set /p ASSET_NAME=<"%WORKDIR%\asset_name.txt"
|
||||
|
||||
if "%ASSET_URL%"=="" (
|
||||
echo ERROR: Asset URL was empty.
|
||||
goto :cleanup_fail
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Download URL: %ASSET_URL%
|
||||
echo.
|
||||
|
||||
REM Download the ZIP
|
||||
echo --- Downloading %ASSET_NAME% ---
|
||||
echo.
|
||||
curl -L --fail -o "%ZIPFILE%" "%ASSET_URL%"
|
||||
if errorlevel 1 (
|
||||
echo ERROR: Download failed.
|
||||
goto :cleanup_fail
|
||||
)
|
||||
echo.
|
||||
|
||||
REM ZIP extraction
|
||||
echo --- Extracting archive ---
|
||||
powershell -NoProfile -Command "Expand-Archive -LiteralPath '%ZIPFILE%' -DestinationPath '%EXTRACTDIR%' -Force"
|
||||
if errorlevel 1 (
|
||||
echo ERROR: Extraction failed.
|
||||
goto :cleanup_fail
|
||||
)
|
||||
echo.
|
||||
|
||||
REM Locate DLL files and transfer to folder
|
||||
echo --- Searching for bin\x64 folders and copying .dll files ---
|
||||
set FOUND=0
|
||||
for /f "delims=" %%D in ('dir /ad /b /s "%EXTRACTDIR%" ^| findstr /i "\\bin\\x64$"') do (
|
||||
set FOUND=1
|
||||
echo Found: %%D
|
||||
xcopy "%%D\*.dll" "%DEST%\" /Y /Q >nul
|
||||
)
|
||||
|
||||
if "%FOUND%"=="0" (
|
||||
echo WARNING: No bin\x64 folder was found inside the archive.
|
||||
echo The archive layout may have changed - check "%EXTRACTDIR%" manually.
|
||||
goto :cleanup_fail
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Done. DLLs copied to: %DEST%
|
||||
echo.
|
||||
dir "%DEST%\*.dll" /b
|
||||
|
||||
goto :cleanup_success
|
||||
|
||||
:cleanup_fail
|
||||
echo.
|
||||
echo Script finished with errors. Temp files kept at:
|
||||
echo %WORKDIR%
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:cleanup_success
|
||||
rmdir /s /q "%WORKDIR%" 2>nul
|
||||
echo.
|
||||
echo Temp files cleaned up.
|
||||
echo.
|
||||
pause
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user