summaryrefslogtreecommitdiff
path: root/utils/installer/install.sh
diff options
context:
space:
mode:
authorFelipe Baltor <[email protected]>2021-12-26 08:56:31 -0300
committerGitHub <[email protected]>2021-12-26 12:56:31 +0100
commit5333cb3de320a13af7db305960247f66ec7f2624 (patch)
tree609fe3042b6e364fb1d27d276d6381fe86f76f62 /utils/installer/install.sh
parenta79de08d40f08e9a3b753175df11283ed737067c (diff)
fix(installer): more robust yarn validation (#2113)
Diffstat (limited to 'utils/installer/install.sh')
-rwxr-xr-xutils/installer/install.sh20
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