asdf-nodejs/bin/install
Augusto Moura fb44c90f56
Add support for auto enabling corepack (#396)
* Add variable for enabling corepack automatically

* Add docs to corepack variable
2024-07-30 12:17:56 -03:00

68 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu -o pipefail
# shellcheck source=../lib/utils.sh
source "$(dirname "$0")/../lib/utils.sh"
install_nodejs() {
local install_type="$1" version="$2" install_path="$3"
local args=()
version=$(resolve_version "$version")
if [ "$install_type" = ref ] || [ "${ASDF_NODEJS_FORCE_COMPILE-}" ]; then
args+=(-c)
fi
try_to_update_nodebuild
NODE_BUILD_CACHE_PATH="${NODE_BUILD_CACHE_PATH:-$ASDF_DOWNLOAD_PATH}" \
nodebuild_wrapped ${args+"${args[@]}"} "$version" "$install_path"
}
_run_for_installation() {
(
if [ -r "$ASDF_NODEJS_PLUGIN_DIR/bin/exec-env" ]; then
. "$ASDF_NODEJS_PLUGIN_DIR/bin/exec-env"
fi
env PATH="$ASDF_INSTALL_PATH/bin:$PATH" "$@"
)
}
install_default_npm_packages() {
local default_npm_packages_file="${ASDF_NPM_DEFAULT_PACKAGES_FILE:=$HOME/.default-npm-packages}" filtered_packages=
if ! [ -f "$default_npm_packages_file" ]; then
return 0
fi
filtered_packages=$(grep -vE "^\s*#" < "$default_npm_packages_file")
if [ "${filtered_packages-}" ]; then
printf "$(colored $CYAN "Installing the following default packages globally: ")"
xargs printf "%s, " <<< "$filtered_packages"
printf "\x8\x8 \n" # Cleanup last comma
_run_for_installation xargs npm install -g <<< "$filtered_packages"
fi
}
enable_corepack() {
if [ "${ASDF_NODEJS_AUTO_ENABLE_COREPACK-}" ]; then
_run_for_installation corepack enable
fi
}
install_nodejs "$ASDF_INSTALL_TYPE" "$ASDF_INSTALL_VERSION" "$ASDF_INSTALL_PATH"
install_default_npm_packages \
|| printf "\n$(colored $YELLOW WARNING:) An error occurred when installing the default npm packages, but Node's installation succeeded\n"
enable_corepack \
|| printf "\n$(colored $YELLOW WARNING:) An error occurred while enabling corepack for this version\n"
asdf reshim "$(plugin_name)" "$ASDF_INSTALL_VERSION"