@echo off setlocal EnableExtensions set "SCRIPT_DIR=%~dp0" set "CONFIG_LOADER=%SCRIPT_DIR%ConfigLoader.ps1" set "CONFIG_PATH=%SCRIPT_DIR%config.json" if not exist "%CONFIG_LOADER%" ( echo [ERROR] ConfigLoader.ps1 not found next to NewProject.bat. exit /b 1 ) if not exist "%CONFIG_PATH%" ( echo [ERROR] config.json not found next to NewProject.bat. exit /b 1 ) for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^ "Set-StrictMode -Version Latest; $loader = Resolve-Path -LiteralPath '%CONFIG_LOADER%' -ErrorAction Stop; . $loader.Path; Write-Output (Get-StructDirectory)"`) do set "STRUCT_DIR=%%I" if not defined STRUCT_DIR ( echo [ERROR] Unable to resolve ProjectStructure directory from config. exit /b 1 ) :: Get current date in YYYY-MM-DD format for /f "tokens=2-4 delims=/ " %%a in ('date /t') do ( set mm=%%a set dd=%%b set yy=%%c ) set yyyy=20%yy:~-2% set yymmdd=%yy:~-2%%mm%%dd% :: Ask for project name set /p projectName="Enter project name (press Enter for default 'NewProject'): " if "%projectName%"=="" set projectName=NewProject set projectRoot=%yymmdd%_%projectName% :: Create main project directory mkdir "%projectRoot%" :: Create Assets structure mkdir "%projectRoot%\Assets\ElevenLabs" if exist "%STRUCT_DIR%\NewDaily.bat" copy /Y "%STRUCT_DIR%\NewDaily.bat" "%projectRoot%\Assets\ElevenLabs\NewDaily.bat" >nul mkdir "%projectRoot%\Assets\Blends" mkdir "%projectRoot%\Assets\Mocap" mkdir "%projectRoot%\Assets\VO" if exist "%~dp0NewDaily.bat" copy /Y "%~dp0NewDaily.bat" "%projectRoot%\Assets\VO\NewDaily.bat" >nul :: Create Blends structure mkdir "%projectRoot%\Blends\animations\" mkdir "%projectRoot%\Blends\stills\img-BG" :: Create Deliverable structure mkdir "%projectRoot%\Deliverable\" :: Create Pr structure mkdir "%projectRoot%\Pr\RnR\RIFE" :: Add project root additions if not exist "%projectRoot%\Renders" mkdir "%projectRoot%\Renders" :: Place helper scripts into Renders set "templateRoot=%STRUCT_DIR%" for %%F in (UpdateSequences.bat ZipSeqArchv.bat UnzipSeqArchv.bat ConfigLoader.ps1 config.json) do ( if exist "%templateRoot%\%%F" copy /Y "%templateRoot%\%%F" "%projectRoot%\Renders\%%F" >nul ) :: Use repo-provided templates for git config files if exist "%~dp0components\gitignore" copy /Y "%~dp0components\gitignore" "%projectRoot%\.gitignore" >nul if exist "%~dp0components\gitattributes" copy /Y "%~dp0components\gitattributes" "%projectRoot%\.gitattributes" >nul :: Initialize git and install Git LFS pushd "%projectRoot%" >nul git init git lfs install git add . -v git commit -m "init" popd >nul echo Project structure created successfully in folder: %projectRoot% pause