first
This commit is contained in:
49
install.ps1
Normal file
49
install.ps1
Normal file
@@ -0,0 +1,49 @@
|
||||
param(
|
||||
[switch]$Wsl
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$WinInstaller = Join-Path $ScriptDir 'install.win.ps1'
|
||||
|
||||
function Write-Step {
|
||||
param([string]$Message)
|
||||
Write-Host "[install] $Message"
|
||||
}
|
||||
|
||||
function Invoke-WslInstaller {
|
||||
if (-not (Get-Command wsl.exe -ErrorAction SilentlyContinue)) {
|
||||
throw 'wsl.exe not found. Please install WSL first.'
|
||||
}
|
||||
Write-Step "Run install.sh inside WSL"
|
||||
$WslDir = (& wsl.exe wslpath -a "$ScriptDir").Trim()
|
||||
if ([string]::IsNullOrWhiteSpace($WslDir)) {
|
||||
throw 'Cannot convert current directory to a WSL path.'
|
||||
}
|
||||
$Cmd = "cd '$WslDir' && ./install.sh"
|
||||
& wsl.exe bash -lc $Cmd
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Install failed, exit code: $LASTEXITCODE"
|
||||
}
|
||||
Write-Step 'Install completed (WSL)'
|
||||
Write-Step 'Start command: ./start_8080_toolhub_stack.sh start'
|
||||
}
|
||||
|
||||
function Invoke-WinInstaller {
|
||||
if (-not (Test-Path $WinInstaller)) {
|
||||
throw "Windows installer not found: $WinInstaller"
|
||||
}
|
||||
Write-Step 'Run install.win.ps1'
|
||||
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File $WinInstaller
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Windows install failed, exit code: $LASTEXITCODE"
|
||||
}
|
||||
Write-Step 'Install completed (Windows)'
|
||||
Write-Step 'Start command: .\start_8080_toolhub_stack.cmd start'
|
||||
}
|
||||
|
||||
if ($Wsl) {
|
||||
Invoke-WslInstaller
|
||||
} else {
|
||||
Invoke-WinInstaller
|
||||
}
|
||||
Reference in New Issue
Block a user