rsyslog/devtools/codex-setup-wsl.ps1
2026-05-05 09:35:49 +02:00

58 lines
1.4 KiB
PowerShell

param(
[string] $Distro = "Ubuntu-24.04",
[string] $RepoPath = "",
[string] $AptMirror = "",
[switch] $VerifyBuild,
[switch] $AllowWindowsMount
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
if ($RepoPath -eq "") {
$RepoPath = (wsl.exe -d $Distro -- bash -lc 'printf "%s" "$HOME/rsyslog"')
if ($LASTEXITCODE -ne 0 -or $RepoPath -eq "") {
throw "Unable to determine the WSL home directory for distro '$Distro'. Pass -RepoPath explicitly."
}
}
function Quote-Bash {
param([string] $Value)
return "'" + $Value.Replace("'", "'\''") + "'"
}
$setupArgs = @()
if ($AptMirror -ne "") {
$setupArgs += "--apt-mirror"
$setupArgs += $AptMirror
}
if ($VerifyBuild) {
$setupArgs += "--verify-build"
}
if ($AllowWindowsMount) {
$setupArgs += "--allow-windows-mount"
}
$quotedArgs = @()
foreach ($arg in $setupArgs) {
$quotedArgs += (Quote-Bash $arg)
}
$repo = Quote-Bash $RepoPath
$argText = $quotedArgs -join " "
$command = "cd $repo && sudo ./devtools/codex-setup.sh $argText"
Write-Host "Running rsyslog Ubuntu 24.04 WSL setup in distro '$Distro'"
Write-Host "Repository: $RepoPath"
if ($AptMirror -ne "") {
Write-Host "Apt mirror override: $AptMirror"
}
if ($VerifyBuild) {
Write-Host "Build verification: enabled"
}
wsl.exe -d $Distro -- bash -lc $command
if ($LASTEXITCODE -ne 0) {
throw "WSL setup failed with exit code $LASTEXITCODE"
}