From 5333cb3de320a13af7db305960247f66ec7f2624 Mon Sep 17 00:00:00 2001 From: Felipe Baltor Date: Sun, 26 Dec 2021 08:56:31 -0300 Subject: fix(installer): more robust yarn validation (#2113) --- utils/installer/install.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'utils') diff --git a/utils/installer/install.sh b/utils/installer/install.sh index cfedd777..1987a519 100755 --- a/utils/installer/install.sh +++ b/utils/installer/install.sh @@ -222,19 +222,29 @@ function __install_nodejs_deps_yarn() { function __validate_node_installation() { local pkg_manager="$1" local manager_home - manager_home="$($pkg_manager config get prefix 2>/dev/null)" + + if ! command -v "$pkg_manager" &>/dev/null; then + return 1 + fi + + if [ "$pkg_manager" == "npm" ]; then + manager_home="$(npm config get prefix 2>/dev/null)" + else + manager_home="$(yarn global bin 2>/dev/null)" + fi if [ ! -d "$manager_home" ] || [ ! -w "$manager_home" ]; then - echo "[ERROR] Unable to install without administrative privileges. Please set your NPM_HOME correctly and try again." - exit 1 + echo "[ERROR] Unable to install using [$pkg_manager] without administrative privileges." + return 1 fi + + return 0 } function install_nodejs_deps() { local -a pkg_managers=("yarn" "npm") for pkg_manager in "${pkg_managers[@]}"; do - if command -v "$pkg_manager" &>/dev/null; then - __validate_node_installation "$pkg_manager" + if __validate_node_installation "$pkg_manager"; then eval "__install_nodejs_deps_$pkg_manager" return fi -- cgit v1.2.3