diff --git a/packages/cli/install.ps1 b/packages/cli/install.ps1 index 10100ca920..9aeadb8f42 100644 --- a/packages/cli/install.ps1 +++ b/packages/cli/install.ps1 @@ -178,9 +178,13 @@ function Configure-UserPath { } $newPath = "$binPath;$userPath" - [Environment]::SetEnvironmentVariable("Path", $newPath, "User") - $env:Path = "$binPath;$env:Path" - return "true" + try { + [Environment]::SetEnvironmentVariable("Path", $newPath, "User") + $env:Path = "$binPath;$env:Path" + return "true" + } catch { + Write-Error-Exit "Cannot update user PATH. Please check your system permissions and re-run the installer." + } } # Run vp env setup --refresh, showing output only on failure diff --git a/packages/cli/install.sh b/packages/cli/install.sh index 3f7b056254..aaa6227ca2 100644 --- a/packages/cli/install.sh +++ b/packages/cli/install.sh @@ -325,6 +325,10 @@ add_bin_to_path() { ref_pattern=$(printf '%s' "$INSTALL_DIR_REF" | sed 's/[.[\*^$()+?{|]/\\&/g') if [ -f "$shell_config" ]; then + if [ ! -w "$shell_config" ]; then + warn "Cannot write to $shell_config (permission denied), skipping." + return 1 + fi if grep -q "${abs_pattern}/env" "$shell_config" 2>/dev/null || \ grep -q "${ref_pattern}/env" "$shell_config" 2>/dev/null; then return 2