AeThex-OS/build-kernel.ps1

37 lines
1.7 KiB
PowerShell

#!/usr/bin/env pwsh
# AeThex OS - Unikernel Build Wrapper for Windows/WSL
Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Cyan
Write-Host " AeThex OS - Unikernel Builder (Windows -> WSL)" -ForegroundColor Cyan
Write-Host "═══════════════════════════════════════════════════════════════"
Write-Host ""
# 1. Check if OPS is installed in WSL
$checkOps = wsl bash -c "command -v ops"
if (-not $checkOps) {
Write-Host "[!] 'ops' is not installed in WSL." -ForegroundColor Red
Write-Host " Installing it now..." -ForegroundColor Yellow
wsl bash -c "curl https://ops.city/get.sh -sSfL | sh"
Write-Host "[OK] OPS Installed." -ForegroundColor Green
Write-Host ""
}
# 2. Convert line endings of the build script just in case
$scriptPath = "script/build-unikernel.sh"
if (Test-Path $scriptPath) {
(Get-Content $scriptPath) -join "`n" | Set-Content $scriptPath -NoNewline
}
# 3. Run the build inside WSL
# We explicitly set the working directory to the current folder mapped in WSL
Write-Host "[*] Building Kernel..." -ForegroundColor Yellow
wsl bash -c "cd '$PWD' && bash script/build-unikernel.sh"
if ($LASTEXITCODE -eq 0) {
Write-Host ""
Write-Host "[OK] Kernel Image Created Successfully!" -ForegroundColor Green
Write-Host " To run it, type: wsl ops run aethex-kernel-v1" -ForegroundColor Gray
} else {
Write-Host ""
Write-Host "[!] Build Failed." -ForegroundColor Red
}