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

104 lines
2.9 KiB
PowerShell

param(
[ValidateSet("Release", "Debug")]
[string]$Configuration = "Release",
[string]$Runtime = "win-x64",
[switch]$SkipSidecar,
[switch]$SkipWeb,
[switch]$SkipWebGateway,
[switch]$SkipTauri,
[switch]$DryRun
)
$commonScript = Join-Path $PSScriptRoot "script-common.ps1"
if (-not (Test-Path $commonScript)) {
throw "Missing helper script: $commonScript"
}
. $commonScript
$repoRoot = Resolve-JournalRepoRoot -StartPath $PSScriptRoot
$appRoot = Resolve-JournalAppRoot -RepoRoot $repoRoot
$outputRoot = Join-Path $repoRoot "output"
$publishSidecar = Join-Path $PSScriptRoot "publish-sidecar.ps1"
$publishApp = Join-Path $PSScriptRoot "publish-app.ps1"
$publishGateway = Join-Path $PSScriptRoot "publish-webgateway.ps1"
Write-Host "Publishing all outputs to: $outputRoot" -ForegroundColor Cyan
Write-Host "Configuration: $Configuration Runtime: $Runtime" -ForegroundColor DarkGray
if (-not (Test-Path $outputRoot)) {
New-Item -ItemType Directory -Force -Path $outputRoot | Out-Null
}
function Invoke-Step {
param(
[string]$Label,
[string]$ScriptPath,
[string[]]$Args
)
Write-Host "`n> $Label" -ForegroundColor Cyan
Write-Host " $ScriptPath $($Args -join ' ')" -ForegroundColor DarkGray
if (-not $DryRun) {
& $ScriptPath @Args
}
}
if (-not $SkipSidecar) {
Invoke-Step "Publish Sidecar" $publishSidecar @(
"-Configuration", $Configuration,
"-Runtime", $Runtime
)
}
else {
Write-Host "Skipping sidecar publish." -ForegroundColor DarkGray
}
if (-not $SkipWeb) {
Invoke-Step "Build Web UI" $publishApp @(
"-Target", "web",
"-Configuration", $Configuration
)
}
else {
Write-Host "Skipping web build." -ForegroundColor DarkGray
}
if (-not $SkipWebGateway) {
Invoke-Step "Publish WebGateway" $publishGateway @(
"-Configuration", $Configuration,
"-Runtime", $Runtime
)
}
else {
Write-Host "Skipping WebGateway publish." -ForegroundColor DarkGray
}
if (-not $SkipTauri) {
Invoke-Step "Build Tauri Desktop App" $publishApp @(
"-Target", "tauri",
"-Configuration", $Configuration,
"-TauriBundles", "none"
)
$targetConfigDir = if ($Configuration -eq "Debug") { "debug" } else { "release" }
$tauriExePath = Join-Path $appRoot "src-tauri\\target\\$targetConfigDir\\journalapp.exe"
$stagedExePath = Join-Path $outputRoot "journalapp.exe"
if (Test-Path $tauriExePath) {
if ($DryRun) {
Write-Host "Would copy: $tauriExePath -> $stagedExePath" -ForegroundColor Yellow
}
else {
Copy-Item -Force $tauriExePath $stagedExePath
Write-Host "Staged desktop exe: $stagedExePath" -ForegroundColor Green
}
}
else {
Write-Warning "Tauri exe not found at $tauriExePath"
}
}
else {
Write-Host "Skipping Tauri build." -ForegroundColor DarkGray
}