diff options
author | Felipe Baltor <[email protected]> | 2021-12-26 08:56:31 -0300 |
---|---|---|
committer | GitHub <[email protected]> | 2021-12-26 12:56:31 +0100 |
commit | 5333cb3de320a13af7db305960247f66ec7f2624 (patch) | |
tree | 609fe3042b6e364fb1d27d276d6381fe86f76f62 | |
parent | a79de08d40f08e9a3b753175df11283ed737067c (diff) |
fix(installer): more robust yarn validation (#2113)
-rwxr-xr-x | utils/installer/install.sh | 20 |
1 files changed, 15 insertions, 5 deletions
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 |