SDT/scripts/legacy/sync-output.legacy.ps1
2026-03-01 20:52:56 -06:00

65 lines
2.8 KiB
PowerShell

param()
$commonScript = Join-Path $PSScriptRoot "script-common.ps1"
if (-not (Test-Path $commonScript)) {
throw "Missing helper script: $commonScript"
}
. $commonScript
$repoRoot = Resolve-JournalRepoRoot -StartPath $PSScriptRoot
$outputDir = Join-Path $repoRoot "output"
# Ensure output exists
New-Item -ItemType Directory -Force -Path $outputDir | Out-Null
Write-Host "Syncing all recent built assets to output directory..." -ForegroundColor Cyan
# Helper to find the newest compiled binary
function Find-NewestBin([string]$SearchPath, [string]$Pattern) {
if (-not (Test-Path $SearchPath)) { return $null }
$files = Get-ChildItem -Path $SearchPath -Filter $Pattern -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -notmatch '\\obj\\' } |
Sort-Object LastWriteTime -Descending
if ($files) { return $files[0] }
return $null
}
# 1. Front-end Web Assets
$webBuildDir = Join-Path $repoRoot "Journal.App\build"
if (Test-Path $webBuildDir) {
$webOutputDir = Join-Path $outputDir "webgateway\wwwroot"
New-Item -ItemType Directory -Force -Path $webOutputDir | Out-Null
Copy-Item -Path (Join-Path $webBuildDir "*") -Destination $webOutputDir -Recurse -Force
Write-Host "Synced web assets -> $webOutputDir" -ForegroundColor Green
}
# 2. Sidecar
$sidecarExeName = if ([System.Environment]::OSVersion.Platform -eq "Win32NT") { "Journal.Sidecar.exe" } else { "Journal.Sidecar" }
$sidecarExe = Find-NewestBin -SearchPath (Join-Path $repoRoot "Journal.Sidecar\bin") -Pattern $sidecarExeName
if ($sidecarExe) {
Copy-Item -Path (Join-Path $sidecarExe.DirectoryName "*") -Destination $outputDir -Recurse -Force
Write-Host "Synced Journal.Sidecar -> $outputDir" -ForegroundColor Green
}
# 3. WebGateway
$gwExeName = if ([System.Environment]::OSVersion.Platform -eq "Win32NT") { "Journal.WebGateway.exe" } else { "Journal.WebGateway" }
$gwExe = Find-NewestBin -SearchPath (Join-Path $repoRoot "Journal.WebGateway\bin") -Pattern $gwExeName
if ($gwExe) {
$gwOutputDir = Join-Path $outputDir "webgateway"
New-Item -ItemType Directory -Force -Path $gwOutputDir | Out-Null
Copy-Item -Path (Join-Path $gwExe.DirectoryName "*") -Destination $gwOutputDir -Recurse -Force
Write-Host "Synced Journal.WebGateway -> $gwOutputDir" -ForegroundColor Green
}
# 4. Tauri Desktop App
$tauriExe = Find-NewestBin -SearchPath (Join-Path $repoRoot "Journal.App\src-tauri\target") -Pattern "*.exe"
if ($tauriExe) {
# Don't try to copy sidecar.exe again if it ended up in tauri target dir
if ($tauriExe.Name -ne "Journal.Sidecar.exe") {
Copy-Item -Path $tauriExe.FullName -Destination $outputDir -Force
Write-Host "Synced Tauri App ($($tauriExe.Name)) -> $outputDir" -ForegroundColor Green
}
}
Write-Host "Sync complete!" -ForegroundColor Cyan