blastoise/android/dev-setup.bat

144 lines
3.9 KiB
Batchfile

@echo off
echo ============================================
echo MusicRoom Android - Dev Setup
echo Installs all prerequisites via Scoop
echo ============================================
echo.
:: Ensure Scoop shims are in PATH
set "PATH=%PATH%;%USERPROFILE%\scoop\shims"
:: Step 1: Scoop
where scoop >nul 2>&1
if errorlevel 1 (
echo [1/5] Installing Scoop...
powershell -ExecutionPolicy Bypass -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; iwr -useb get.scoop.sh | iex"
set "PATH=%PATH%;%USERPROFILE%\scoop\shims"
where scoop >nul 2>&1
if errorlevel 1 (
echo ERROR: Scoop installation failed. Install manually from https://scoop.sh
pause
exit /b 1
)
echo Scoop installed.
) else (
echo [1/5] Scoop already installed.
)
echo.
:: Step 2: Buckets
echo [2/5] Adding Scoop buckets...
call scoop bucket add java 2>nul
call scoop bucket add extras 2>nul
echo Done.
echo.
:: Step 3: Install tools
echo [3/5] Installing Node.js, JDK 17, Android CLI tools, and Gradle...
echo This may take several minutes.
echo.
call scoop install nodejs-lts
if errorlevel 1 (
echo ERROR: Failed to install Node.js
pause & exit /b 1
)
call scoop install temurin17-jdk
if errorlevel 1 (
echo ERROR: Failed to install JDK 17
pause & exit /b 1
)
call scoop install android-clt
if errorlevel 1 (
echo ERROR: Failed to install Android CLI tools
pause & exit /b 1
)
call scoop install gradle
if errorlevel 1 (
echo ERROR: Failed to install Gradle
pause & exit /b 1
)
echo All tools installed.
echo.
:: Step 4: Environment variables
echo [4/5] Setting environment variables...
set "JAVA_HOME=%USERPROFILE%\scoop\apps\temurin17-jdk\current"
if not exist "%JAVA_HOME%" (
for /f "delims=" %%i in ('where java 2^>nul') do (
set "JAVA_PATH=%%i"
goto :found_java
)
:found_java
if defined JAVA_PATH (
for %%i in ("%JAVA_PATH%") do set "JAVA_HOME=%%~dpi.."
)
)
set "ANDROID_HOME=%LOCALAPPDATA%\Android\Sdk"
echo JAVA_HOME = %JAVA_HOME%
echo ANDROID_HOME = %ANDROID_HOME%
powershell -Command "[Environment]::SetEnvironmentVariable('JAVA_HOME', '%JAVA_HOME%', 'User')"
powershell -Command "[Environment]::SetEnvironmentVariable('ANDROID_HOME', '%ANDROID_HOME%', 'User')"
set "SDK_TOOLS=%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\cmdline-tools\latest\bin"
powershell -Command "$p = [Environment]::GetEnvironmentVariable('Path','User'); if($p -notlike '*platform-tools*'){[Environment]::SetEnvironmentVariable('Path', $p + ';%SDK_TOOLS%', 'User')}"
set "PATH=%PATH%;%SDK_TOOLS%"
echo Done.
echo.
:: Step 5: Android SDK (headless via sdkmanager)
echo [5/5] Installing Android SDK components...
set "SDKMANAGER=%ANDROID_HOME%\cmdline-tools\latest\bin\sdkmanager.bat"
if not exist "%SDKMANAGER%" (
echo sdkmanager not found at:
echo %SDKMANAGER%
echo.
echo Trying Scoop android-clt path...
set "SDKMANAGER=%USERPROFILE%\scoop\apps\android-clt\current\bin\sdkmanager.bat"
)
if not exist "%SDKMANAGER%" (
echo ERROR: sdkmanager not found.
echo Install android-clt via Scoop first.
pause & exit /b 1
)
echo Accepting licenses...
echo y | call "%SDKMANAGER%" --licenses >nul 2>&1
echo Installing platform-tools, android-34, build-tools-34...
call "%SDKMANAGER%" "platform-tools" "platforms;android-34" "build-tools;34.0.0"
echo Done.
echo.
echo.
echo ============================================
echo Setup complete!
echo.
echo Tools installed via Scoop:
echo Node.js LTS, JDK 17, Android CLI, Gradle
echo.
echo Android SDK installed headlessly:
echo platform-tools, android-34, build-tools-34
echo.
echo Environment:
echo JAVA_HOME = %JAVA_HOME%
echo ANDROID_HOME = %ANDROID_HOME%
echo.
echo NOTE: Restart your terminal for
echo permanent env var changes.
echo ============================================
pause