blender-tools/install-all.bat

67 lines
2.0 KiB
Batchfile

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "REPO_ROOT=%~dp0"
set "BLENDER_ROOT=%REPO_ROOT%blender"
set "DIST_DIR=%REPO_ROOT%dist"
if not defined BLENDER_BIN set "BLENDER_BIN=blender"
if not defined BLENDER_EXTENSION_REPO set "BLENDER_EXTENSION_REPO=user_default"
if not exist "%BLENDER_ROOT%" (
echo No Blender extension directory found at "%BLENDER_ROOT%". 1>&2
exit /b 1
)
if not exist "%DIST_DIR%" mkdir "%DIST_DIR%"
if errorlevel 1 exit /b 1
set /a EXTENSION_COUNT=0
for /r "%BLENDER_ROOT%" %%F in (blender_manifest.toml) do (
set "EXTENSION_ID="
set "EXTENSION_VERSION="
for /f "tokens=1,* delims==" %%A in ('findstr /b /c:"id =" "%%F"') do set "EXTENSION_ID=%%B"
for /f "tokens=1,* delims==" %%A in ('findstr /b /c:"version =" "%%F"') do set "EXTENSION_VERSION=%%B"
set "EXTENSION_ID=!EXTENSION_ID: =!"
set "EXTENSION_ID=!EXTENSION_ID:"=!"
set "EXTENSION_VERSION=!EXTENSION_VERSION: =!"
set "EXTENSION_VERSION=!EXTENSION_VERSION:"=!"
if not defined EXTENSION_ID (
echo Could not read the extension id from "%%F". 1>&2
exit /b 1
)
if not defined EXTENSION_VERSION (
echo Could not read the extension version from "%%F". 1>&2
exit /b 1
)
for %%D in ("%%~dpF.") do set "SOURCE_DIR=%%~fD"
set "PACKAGE=%DIST_DIR%\!EXTENSION_ID!-!EXTENSION_VERSION!.zip"
echo Building Blender extension: !EXTENSION_ID! !EXTENSION_VERSION!
"%BLENDER_BIN%" --factory-startup --command extension build ^
--source-dir "!SOURCE_DIR!" ^
--output-filepath "!PACKAGE!"
if errorlevel 1 exit /b 1
echo Installing Blender extension: !PACKAGE!
"%BLENDER_BIN%" --factory-startup --command extension install-file ^
-r "%BLENDER_EXTENSION_REPO%" ^
-e "!PACKAGE!"
if errorlevel 1 exit /b 1
set /a EXTENSION_COUNT+=1
)
if !EXTENSION_COUNT! equ 0 (
echo No Blender extension manifests found under "%BLENDER_ROOT%". 1>&2
exit /b 1
)
echo Installed and enabled !EXTENSION_COUNT! Blender extension(s) in repository "%BLENDER_EXTENSION_REPO%".
exit /b 0