Skip to content

Commit 04e854f

Browse files
committed
refactor: extract refresh_shims helper in install scripts
Extract the repeated "run vp env setup --refresh, show output only on failure" pattern into Refresh-Shims (install.ps1) and refresh_shims (install.sh) helper functions, called from 4 places each.
1 parent 872c744 commit 04e854f

2 files changed

Lines changed: 29 additions & 41 deletions

File tree

packages/cli/install.ps1

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,16 @@ function Configure-UserPath {
183183
return "true"
184184
}
185185

186+
# Run vp env setup --refresh, showing output only on failure
187+
function Refresh-Shims {
188+
param([string]$BinDir)
189+
$setupOutput = & "$BinDir\vp.exe" env setup --refresh 2>&1
190+
if ($LASTEXITCODE -ne 0) {
191+
Write-Warn "Failed to refresh shims:"
192+
Write-Host "$setupOutput"
193+
}
194+
}
195+
186196
# Setup Node.js version manager (node/npm/npx shims)
187197
# Returns: "true" = enabled, "false" = not enabled, "already" = already configured
188198
function Setup-NodeManager {
@@ -193,21 +203,13 @@ function Setup-NodeManager {
193203
# Check if Vite+ is already managing Node.js (bin\node.exe exists)
194204
if (Test-Path "$binPath\node.exe") {
195205
# Already managing Node.js, just refresh shims
196-
$setupOutput = & "$BinDir\vp.exe" env setup --refresh 2>&1
197-
if ($LASTEXITCODE -ne 0) {
198-
Write-Warn "Failed to refresh shims:"
199-
Write-Host "$setupOutput"
200-
}
206+
Refresh-Shims -BinDir $BinDir
201207
return "already"
202208
}
203209

204210
# Auto-enable on CI environment
205211
if ($env:CI) {
206-
$setupOutput = & "$BinDir\vp.exe" env setup --refresh 2>&1
207-
if ($LASTEXITCODE -ne 0) {
208-
Write-Warn "Failed to refresh shims:"
209-
Write-Host "$setupOutput"
210-
}
212+
Refresh-Shims -BinDir $BinDir
211213
return "true"
212214
}
213215

@@ -216,11 +218,7 @@ function Setup-NodeManager {
216218

217219
# Auto-enable if no node available on system
218220
if (-not $nodeAvailable) {
219-
$setupOutput = & "$BinDir\vp.exe" env setup --refresh 2>&1
220-
if ($LASTEXITCODE -ne 0) {
221-
Write-Warn "Failed to refresh shims:"
222-
Write-Host "$setupOutput"
223-
}
221+
Refresh-Shims -BinDir $BinDir
224222
return "true"
225223
}
226224

@@ -232,11 +230,7 @@ function Setup-NodeManager {
232230
$response = Read-Host "Press Enter to accept (Y/n)"
233231

234232
if ($response -eq '' -or $response -eq 'y' -or $response -eq 'Y') {
235-
$setupOutput = & "$BinDir\vp.exe" env setup --refresh 2>&1
236-
if ($LASTEXITCODE -ne 0) {
237-
Write-Warn "Failed to refresh shims:"
238-
Write-Host "$setupOutput"
239-
}
233+
Refresh-Shims -BinDir $BinDir
240234
return "true"
241235
}
242236
}

packages/cli/install.sh

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,17 @@ configure_shell_path() {
413413
# If result is still 1, PATH_CONFIGURED remains "false" (set at function start)
414414
}
415415

416+
# Run vp env setup --refresh, showing output only on failure
417+
# Arguments: vp_bin - path to the vp binary
418+
refresh_shims() {
419+
local vp_bin="$1"
420+
local setup_output
421+
if ! setup_output=$("$vp_bin" env setup --refresh 2>&1); then
422+
warn "Failed to refresh shims:"
423+
echo "$setup_output" >&2
424+
fi
425+
}
426+
416427
# Setup Node.js version manager (node/npm/npx shims)
417428
# Sets NODE_MANAGER_ENABLED global
418429
# Arguments: bin_dir - path to the version's bin directory containing vp
@@ -429,23 +440,14 @@ setup_node_manager() {
429440

430441
# Check if Vite+ is already managing Node.js (bin/node or bin/node.exe exists)
431442
if [ -e "$bin_path/node" ] || [ -e "$bin_path/node.exe" ]; then
432-
# Already managing Node.js, just refresh shims
433-
local setup_output
434-
if ! setup_output=$("$vp_bin" env setup --refresh 2>&1); then
435-
warn "Failed to refresh shims:"
436-
echo "$setup_output" >&2
437-
fi
443+
refresh_shims "$vp_bin"
438444
NODE_MANAGER_ENABLED="already"
439445
return 0
440446
fi
441447

442448
# Auto-enable on CI environment
443449
if [ -n "$CI" ]; then
444-
local setup_output
445-
if ! setup_output=$("$vp_bin" env setup --refresh 2>&1); then
446-
warn "Failed to refresh shims:"
447-
echo "$setup_output" >&2
448-
fi
450+
refresh_shims "$vp_bin"
449451
NODE_MANAGER_ENABLED="true"
450452
return 0
451453
fi
@@ -458,11 +460,7 @@ setup_node_manager() {
458460

459461
# Auto-enable if no node available on system
460462
if [ "$node_available" = "false" ]; then
461-
local setup_output
462-
if ! setup_output=$("$vp_bin" env setup --refresh 2>&1); then
463-
warn "Failed to refresh shims:"
464-
echo "$setup_output" >&2
465-
fi
463+
refresh_shims "$vp_bin"
466464
NODE_MANAGER_ENABLED="true"
467465
return 0
468466
fi
@@ -475,11 +473,7 @@ setup_node_manager() {
475473
read -r response < /dev/tty
476474

477475
if [ -z "$response" ] || [ "$response" = "y" ] || [ "$response" = "Y" ]; then
478-
local setup_output
479-
if ! setup_output=$("$vp_bin" env setup --refresh 2>&1); then
480-
warn "Failed to refresh shims:"
481-
echo "$setup_output" >&2
482-
fi
476+
refresh_shims "$vp_bin"
483477
NODE_MANAGER_ENABLED="true"
484478
fi
485479
fi

0 commit comments

Comments
 (0)