fix: wrap main execution in try/catch to show errors instead of silent exit
This commit is contained in:
+44
-36
@@ -1041,45 +1041,53 @@ function Invoke-Upgrade {
|
||||
# ─────────────────────────────────────────
|
||||
# 主流程
|
||||
# ─────────────────────────────────────────
|
||||
"" | Out-File $LOG_FILE
|
||||
try {
|
||||
"" | Out-File $LOG_FILE
|
||||
|
||||
# 检测是否是 iex / 管道执行(如 irm | iex)
|
||||
$isIexExecution = -not $PSCommandPath
|
||||
# 检测是否是 iex / 管道执行(如 irm | iex)
|
||||
$isIexExecution = -not $PSCommandPath
|
||||
|
||||
Setup-InstallDir
|
||||
Check-Prerequisites
|
||||
Collect-Status
|
||||
Setup-InstallDir
|
||||
Check-Prerequisites
|
||||
Collect-Status
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "╔══════════════════════════════════════════════════════════════════╗" -ForegroundColor White
|
||||
Write-Host "║ HAPI 系统状态 ║" -ForegroundColor White
|
||||
Write-Host "╚══════════════════════════════════════════════════════════════════╝" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Print-Status
|
||||
|
||||
# 非交互模式(irm | iex)
|
||||
if ($isIexExecution) {
|
||||
if ($Upgrade) {
|
||||
Invoke-Upgrade
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
if ($Force -or $Source -or $SkipHub -or $InstallDir) {
|
||||
Invoke-Install
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
if (-not $script:STATUS_CLI_INSTALLED) {
|
||||
Write-Host ""
|
||||
Write-Warn "HAPI CLI 未安装"
|
||||
Write-Warn "请使用 -Source / -Force 等参数指定操作,或直接运行 install.ps1 进入交互模式"
|
||||
}
|
||||
Write-Host ""
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
Write-Host "╔══════════════════════════════════════════════════════════════════╗" -ForegroundColor White
|
||||
Write-Host "║ HAPI 系统状态 ║" -ForegroundColor White
|
||||
Write-Host "╚══════════════════════════════════════════════════════════════════╝" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Print-Status
|
||||
|
||||
# 交互菜单
|
||||
while ($true) {
|
||||
Main-Menu
|
||||
# 非交互模式(irm | iex)
|
||||
if ($isIexExecution) {
|
||||
if ($Upgrade) {
|
||||
Invoke-Upgrade
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
if ($Force -or $Source -or $SkipHub -or $InstallDir) {
|
||||
Invoke-Install
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
if (-not $script:STATUS_CLI_INSTALLED) {
|
||||
Write-Host ""
|
||||
Write-Warn "HAPI CLI 未安装"
|
||||
Write-Warn "请使用 -Source / -Force 等参数指定操作,或直接运行 install.ps1 进入交互模式"
|
||||
}
|
||||
Write-Host ""
|
||||
Start-Sleep 3
|
||||
exit
|
||||
}
|
||||
|
||||
# 交互菜单
|
||||
while ($true) {
|
||||
Main-Menu
|
||||
}
|
||||
} catch {
|
||||
Write-Host ""
|
||||
Write-Err "脚本错误: $_"
|
||||
Write-Host "按 Enter 退出..."
|
||||
$null = Read-Host
|
||||
exit 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user