45 lines
1.1 KiB
PowerShell
45 lines
1.1 KiB
PowerShell
# Git symlinks on Windows are often checked out as one-line text files like "../src/foo.h".
|
|
# This script replaces such stubs with the real header contents.
|
|
|
|
param(
|
|
[string]$Root = (Join-Path $PSScriptRoot "app\src\main\cpp\hev-socks5-tunnel")
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
if (-not (Test-Path $Root)) {
|
|
Write-Error "hev-socks5-tunnel not found: $Root"
|
|
}
|
|
|
|
$fixed = 0
|
|
$missing = 0
|
|
|
|
Get-ChildItem -Path $Root -Recurse -Filter *.h | ForEach-Object {
|
|
$file = $_.FullName
|
|
$lines = @(Get-Content $file -ErrorAction SilentlyContinue)
|
|
if ($lines.Count -ne 1) {
|
|
return
|
|
}
|
|
|
|
$line = $lines[0].Trim()
|
|
if ($line -notmatch '^\.\./') {
|
|
return
|
|
}
|
|
|
|
$target = [System.IO.Path]::GetFullPath((Join-Path $_.DirectoryName $line))
|
|
if (-not (Test-Path $target)) {
|
|
Write-Warning "Missing symlink target: $file -> $target"
|
|
$script:missing++
|
|
return
|
|
}
|
|
|
|
Copy-Item -Path $target -Destination $file -Force
|
|
$script:fixed++
|
|
}
|
|
|
|
Write-Host "Fixed symlink stubs: $fixed"
|
|
if ($missing -gt 0) {
|
|
Write-Warning "Missing targets: $missing"
|
|
exit 1
|
|
}
|