Files
Felt/UpdateFelt.ps1
MarioGLealP 8956d14204 Rewrite as a plain docs/launcher hub for the post-Windows-migration Felt stack
Drops the git-submodule model (felt-core/felt-voice/felt-desktop-agent/
felt-dashboard as submodules) in favor of independently-cloned sibling
repos at E:\Felt, matching the actual current setup after the desktop's
Linux->Windows migration. Retires felt-desktop-agent (Linux D-Bus, no
Windows equivalent) and the Tauri dashboard shell (replaced by felt-tray's
Python/pywebview shell). Adds docs/plans/ (moved design docs and task
briefs previously loose in the workspace or inside AnimToVrmaConverter)
and the LaunchFelt.ps1/UpdateFelt.ps1 launcher scripts, previously
untracked.
2026-09-21 22:02:21 +01:00

74 lines
3.0 KiB
PowerShell

$GodotPathFile = "E:\Felt\godot_path.txt"
$GodotExe = ""
if (Test-Path $GodotPathFile) {
$GodotExe = Get-Content $GodotPathFile
}
if (-not (Test-Path $GodotExe)) {
Add-Type -AssemblyName System.Windows.Forms
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
$FileBrowser.Title = "Please select your Godot Engine executable (Godot_v4*.exe)"
$FileBrowser.Filter = "Godot Executable|Godot_v4*.exe;godot.exe"
$result = $FileBrowser.ShowDialog()
if ($result -eq 'OK') {
$GodotExe = $FileBrowser.FileName
Set-Content -Path $GodotPathFile -Value $GodotExe
} else {
Write-Host "Update cancelled (no Godot executable selected)."
Start-Sleep -Seconds 3
exit
}
}
Write-Host "Stopping running instances..."
Stop-Process -Name "FeltOverlay" -ErrorAction SilentlyContinue
Start-Sleep -Seconds 1
# Commit whatever Mario has dropped into the asset folders (new .vrma
# clips, a swapped felt.vrm) before rebuilding, so every export corresponds
# to a real git snapshot - cheap, reversible, and means "manage stuff from
# E:\Felt" actually has a backup/history behind it, not just loose files.
Write-Host "Checking for new/changed assets..."
Set-Location -Path "E:\Felt\felt-character-assets"
git add -A
$staged = git diff --cached --name-only
if ($staged) {
Write-Host " Committing asset changes:"
$staged | ForEach-Object { Write-Host " $_" }
git commit -m "Update Felt assets" | Out-Null
git push
} else {
Write-Host " Nothing new."
}
Write-Host "Exporting Godot project..."
Set-Location -Path "E:\Felt\felt-character-assets\felt-godot-overlay"
$process = Start-Process -FilePath $GodotExe -ArgumentList "--headless --export-release `"Windows Desktop`" build/windows/FeltOverlay.exe" -Wait -NoNewWindow -PassThru
if ($process.ExitCode -eq 0) {
Write-Host "Godot export successful!"
} else {
Write-Host "Export failed with exit code $($process.ExitCode). Check errors above."
pause
exit
}
# Required, not optional - patch-clickthrough.ps1 isn't packed into the
# export (Godot doesn't include loose non-resource files by default), so
# main.gd looks for it as a real sibling of the .exe. Without it,
# click-through never applies and the overlay sits always-on-top,
# blocking every click on the real desktop until killed - a real incident
# that happened during development (2026-09-21).
Copy-Item "patch-clickthrough.ps1" "build\windows\patch-clickthrough.ps1" -Force
Write-Host "Restarting Felt Animation..."
Set-Location -Path "E:\Felt\felt-animation"
# Kill python processes running felt-animation (to be safe)
Get-WmiObject Win32_Process -Filter "Name='python.exe'" | Where-Object { $_.CommandLine -match "felt_animation" } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }
Start-Sleep -Seconds 1
Start-Process -FilePath ".venv\Scripts\python.exe" -ArgumentList "-m felt_animation" -WindowStyle Hidden
Write-Host "Update and Restart complete!"
Start-Sleep -Seconds 2