80d73d1b74
- redis/client.py: use BlockingConnectionPool.from_url() (fixes 'url' kwarg error) - database/engine_compat.py: patch aiomysql do_ping to satisfy pool_pre_ping - database/session.py: apply engine_compat patch before create_async_engine - requirements.txt: SQLAlchemy 2.0.49 (fixes aiomysql ping() reconnect signature) - .env.example: document NEXUS_REDIS_URL format - scripts/wsl_ensure_venv.sh: create project .venv (PEP 668 safe) - scripts/wsl_start_dev.sh: use .venv python, validate Redis before start - scripts/wsl_integration_smoke.sh: code-only verification mode - scripts/wsl_check_mysql.py / bootstrap_database.py: MySQL setup helpers - scripts/sync_frontend_vendor.py: vendor asset sync utility Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
1.0 KiB
PowerShell
29 lines
1.0 KiB
PowerShell
# Download Node.js 20 Linux x64 tarball for WSL offline install (when WSL curl/DNS fails).
|
|
$ErrorActionPreference = "Stop"
|
|
$Version = "v20.19.2"
|
|
$Arch = "x64"
|
|
$Root = Split-Path -Parent $PSScriptRoot
|
|
$CacheDir = Join-Path $Root ".cache"
|
|
$Out = Join-Path $CacheDir "node-${Version}-linux-${Arch}.tar.xz"
|
|
$Urls = @(
|
|
"https://npmmirror.com/mirrors/node/${Version}/node-${Version}-linux-${Arch}.tar.xz",
|
|
"https://nodejs.org/dist/${Version}/node-${Version}-linux-${Arch}.tar.xz"
|
|
)
|
|
|
|
New-Item -ItemType Directory -Force -Path $CacheDir | Out-Null
|
|
foreach ($url in $Urls) {
|
|
Write-Host "Downloading $url ..."
|
|
try {
|
|
curl.exe --noproxy "*" -fsSL --connect-timeout 30 -o $Out $url
|
|
if ((Get-Item $Out).Length -gt 1000000) {
|
|
Write-Host "OK: $Out ($((Get-Item $Out).Length) bytes)"
|
|
Write-Host "Run in WSL: bash scripts/wsl_install_node20.sh"
|
|
exit 0
|
|
}
|
|
} catch {
|
|
Write-Host "Failed: $_"
|
|
}
|
|
}
|
|
Write-Host "ERROR: download failed" -ForegroundColor Red
|
|
exit 1
|