65 lines
3.0 KiB
Batchfile
65 lines
3.0 KiB
Batchfile
@echo off
|
|
setlocal EnableExtensions
|
|
|
|
set "script_dir=%~dp0"
|
|
set "current_dir=%CD%"
|
|
set "PROJ_ROOT="
|
|
|
|
REM First, check project level (one directory up from current) - most common case
|
|
for %%I in ("%current_dir%..") do set "project_level=%%~fI"
|
|
set "project_config=%project_level%\.config\config.json"
|
|
if exist "%project_config%" (
|
|
set "PROJ_ROOT=%project_level%"
|
|
)
|
|
|
|
REM If not found at project level, search up from current working directory
|
|
if not defined PROJ_ROOT (
|
|
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-StrictMode -Version Latest; $dir = '%current_dir%'; $found = $null; while ($dir -and -not $found) { $configPath = Join-Path $dir '.config\config.json'; if (Test-Path -LiteralPath $configPath) { $found = $dir; break }; $parent = Split-Path -Parent $dir; if ($parent -eq $dir) { break }; $dir = $parent }; if ($found) { Write-Output $found } else { Write-Output '' }"`) do set "PROJ_ROOT=%%I"
|
|
)
|
|
|
|
REM If still not found, try searching from script location
|
|
if not defined PROJ_ROOT (
|
|
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-StrictMode -Version Latest; $dir = '%script_dir%'; $found = $null; while ($dir -and -not $found) { $configPath = Join-Path $dir '.config\config.json'; if (Test-Path -LiteralPath $configPath) { $found = $dir; break }; $parent = Split-Path -Parent $dir; if ($parent -eq $dir) { break }; $dir = $parent }; if ($found) { Write-Output $found } else { Write-Output '' }"`) do set "PROJ_ROOT=%%I"
|
|
)
|
|
|
|
REM Fallback: try original logic (script in 3 ProjectStructure)
|
|
if not defined PROJ_ROOT (
|
|
for %%I in ("%script_dir%..\..") do set "PROJ_ROOT=%%~fI"
|
|
)
|
|
|
|
set "CONFIG_DIR=%PROJ_ROOT%\.config"
|
|
set "CONFIG_PATH=%CONFIG_DIR%\config.json"
|
|
|
|
if not exist "%CONFIG_PATH%" (
|
|
echo [ERROR] config.json not found at %CONFIG_PATH%
|
|
if defined project_config (
|
|
echo Also checked: %project_config%
|
|
)
|
|
echo Please run ConfigLoader.ps1 to deploy helper files.
|
|
exit /b 1
|
|
)
|
|
|
|
set "GET_STRUCT_DIR=%CONFIG_DIR%\GetStructDir.ps1"
|
|
|
|
if not exist "%GET_STRUCT_DIR%" (
|
|
echo [ERROR] GetStructDir.ps1 not found at %GET_STRUCT_DIR%
|
|
echo Please run ConfigLoader.ps1 to deploy helper files.
|
|
exit /b 1
|
|
)
|
|
|
|
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
|
"Set-StrictMode -Version Latest; $structDir = & '%GET_STRUCT_DIR%' -ProjectRoot '%PROJ_ROOT%'; if (-not $structDir) { throw \"Failed to get structDir from GetStructDir.ps1\" }; $ps1Path = Join-Path $structDir 'UpdateSequences.ps1'; if (-not (Test-Path -LiteralPath $ps1Path)) { throw \"UpdateSequences.ps1 not found at $ps1Path\" }; Write-Output $ps1Path"`) do set "ps1=%%I"
|
|
|
|
if not defined ps1 (
|
|
echo [ERROR] Unable to resolve UpdateSequences.ps1 path from config.
|
|
exit /b 1
|
|
)
|
|
|
|
echo Running PowerShell update script...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%ps1%"
|
|
set "rc=%errorlevel%"
|
|
echo PowerShell exited with RC=%rc%
|
|
echo Done.
|
|
pause >nul
|
|
exit /b %rc%
|