Files
HakumaguroandClaude Opus 5.5 72da13354e One-step setup, spoken status check, menu, release packaging
- module: works if only one of UDP 9015/9020 can be opened; logs state changes only (capped);
  trace is opt-in; writes a status file; reports when another module owns eye tracking
- scripts/setup.ps1: idempotent installer with dry run, uninstall and optional headset setup
- scripts/doctor.ps1: health check with a spoken summary
- Start Here.cmd menu; tune.py calibrate (spoken, one step); package.ps1 release zip
- README: quick start and troubleshooting first

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:41:26 +09:00

31 lines
1.7 KiB
PowerShell

<#
Build a release zip that needs no .NET SDK: the prebuilt module DLL next to "Start Here.cmd" and the scripts.
setup.ps1 uses the prebuilt DLL when it finds it in the zip's root folder.
usage: powershell -ExecutionPolicy Bypass -File scripts\package.ps1 -> dist\vrcft-steam-frame-<version>.zip
#>
$ErrorActionPreference = "Stop"
. "$PSScriptRoot\common.ps1"
$root = Split-Path -Parent $PSScriptRoot
$dotnet = Find-DotnetSdk10
if (-not $dotnet) { throw ".NET 10 SDK not found" }
$vrcft = Find-VrcftDir
if (-not $vrcft) { throw "VRCFaceTracking not found (its DLLs are needed to build)" }
& $dotnet build "$root\module" -c Release --nologo -v q "-p:VrcftDir=$vrcft"
if ($LASTEXITCODE -ne 0) { throw "build failed" }
$ver = ([xml](Get-Content "$root\module\SteamFrameVRCFTModule.csproj")).Project.PropertyGroup.Version | Where-Object { $_ } | Select-Object -First 1
$name = "vrcft-steam-frame-$ver"
$stage = Join-Path $root "dist\$name"
Remove-Item $stage -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force "$stage\scripts", "$stage\tools" | Out-Null
Copy-Item "$root\module\bin\Release\net10.0\$script:ModuleDll" $stage
Copy-Item "$root\Start Here.cmd", "$root\README.md", "$root\LICENSE" $stage
Copy-Item "$root\scripts\common.ps1", "$root\scripts\setup.ps1", "$root\scripts\doctor.ps1", "$root\scripts\headset-setup.sh",
"$root\scripts\headset-install.sh", "$root\scripts\headset-run.sh", "$root\scripts\frameeyeosc.service" "$stage\scripts"
Copy-Item "$root\tools\tune.py" "$stage\tools"
$zip = Join-Path $root "dist\$name.zip"
Remove-Item $zip -ErrorAction SilentlyContinue
Compress-Archive -Path $stage -DestinationPath $zip
Write-Host "created $zip"