seshat-tts
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
param(
|
||||
[switch]$SkipInstall,
|
||||
[switch]$OneDir
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$Root = Split-Path -Parent $PSScriptRoot
|
||||
Set-Location $Root
|
||||
$DistApp = Join-Path $Root "dist\seshat-tts"
|
||||
$DistExe = Join-Path $Root "dist\seshat-tts.exe"
|
||||
|
||||
$RunningApps = @(Get-Process -Name "seshat-tts" -ErrorAction SilentlyContinue)
|
||||
foreach ($Process in $RunningApps) {
|
||||
try {
|
||||
Stop-Process -Id $Process.Id -Force -ErrorAction Stop
|
||||
} catch {
|
||||
& taskkill.exe /PID $Process.Id /T /F | Out-Null
|
||||
}
|
||||
}
|
||||
Start-Sleep -Milliseconds 500
|
||||
$StillRunning = @(Get-Process -Name "seshat-tts" -ErrorAction SilentlyContinue)
|
||||
if ($StillRunning.Count -gt 0) {
|
||||
$Ids = ($StillRunning | ForEach-Object { $_.Id }) -join ", "
|
||||
throw "Close Seshat TTS before building. Could not stop running process id(s): $Ids"
|
||||
}
|
||||
foreach ($Target in @($DistApp, $DistExe)) {
|
||||
if (Test-Path $Target) {
|
||||
for ($Attempt = 1; $Attempt -le 5; $Attempt++) {
|
||||
try {
|
||||
Remove-Item -LiteralPath $Target -Recurse -Force
|
||||
break
|
||||
} catch {
|
||||
if ($Attempt -eq 5) {
|
||||
throw
|
||||
}
|
||||
Start-Sleep -Seconds 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $SkipInstall) {
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[build,test]"
|
||||
}
|
||||
|
||||
if ($OneDir) {
|
||||
python -m PyInstaller --clean --noconfirm seshat-tts.spec
|
||||
Write-Host "Built: $Root\dist\seshat-tts\seshat-tts.exe"
|
||||
} else {
|
||||
python -m PyInstaller --clean --noconfirm seshat-tts-portable.spec
|
||||
Write-Host "Built portable EXE: $Root\dist\seshat-tts.exe"
|
||||
}
|
||||
|
||||
Write-Host "The portable EXE bundles the GUI runtime, bundled OCR files when Tesseract is installed on this build machine, and uvx.exe when found."
|
||||
Reference in New Issue
Block a user