14 lines
816 B
PowerShell
14 lines
816 B
PowerShell
param([Parameter(Mandatory = $true)][string]$WebRoot)
|
|
Set-StrictMode -Version 3.0
|
|
$ErrorActionPreference = 'Stop'
|
|
$root = [IO.Path]::GetFullPath($WebRoot)
|
|
$index = Join-Path $root 'index.html'
|
|
if (-not (Test-Path -LiteralPath $index -PathType Leaf)) { throw 'web/index.html is missing.' }
|
|
$html = Get-Content -LiteralPath $index -Raw -Encoding UTF8
|
|
$references = [regex]::Matches($html, '(?:src|href)=["''](?<path>/[^"''?#]+)') | ForEach-Object { $_.Groups['path'].Value.TrimStart('/').Replace('/', '\') }
|
|
foreach ($relative in $references | Sort-Object -Unique) {
|
|
if ($relative -match '^https?:') { continue }
|
|
if (-not (Test-Path -LiteralPath (Join-Path $root $relative) -PathType Leaf)) { throw "web asset referenced by index.html is missing: $relative" }
|
|
}
|
|
Write-Host "Bell web asset check passed: $root"
|