mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
f6a4e4f20f
Summary: Update setup of sourcing `asdf-vm` in `find-node-for-xcode.sh` in case of user has custom defined of `$ASDF_DIR` by default `$ASDF_DIR` point to `$HOME/.asdf`, but if user has custom directory (like XDG convention) this script wont work without this change. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: [ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests --> [GENERAL] [CHANGED] - Find node binary when using asdf as the node version manager with custom `$ASDF_DIR` Pull Request resolved: https://github.com/facebook/react-native/pull/36043 Test Plan: use a defualt/custom `$ASDF_DIR` while using `asdf-vm` as node version manager then make iOS build. Reviewed By: cortinico Differential Revision: D42990407 Pulled By: cipolleschi fbshipit-source-id: 1fe3fdc786bddf741ff422e7bec55a6c9cc8ed83
84 lines
2.9 KiB
Bash
84 lines
2.9 KiB
Bash
#!/bin/bash
|
||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
#
|
||
# This source code is licensed under the MIT license found in the
|
||
# LICENSE file in the root directory of this source tree.
|
||
|
||
set -e
|
||
|
||
# WHY WE NEED THIS:
|
||
# This script is used to find a valid instance of `node` installed in the machine.
|
||
# This script is sourced by other scripts to get access to node.
|
||
# Specifically, it is used by the `react-native-xcode.sh` script, invoked by a
|
||
# post-build phase in Xcode, to build the js files required by React Native.
|
||
#
|
||
# DEPRECATION NOTE:
|
||
# React Native should not make assumptions on your current node environment.
|
||
# This file is deprecated and will be removed in a future release in favor of something
|
||
# node-agnostic and configurable by the developers.
|
||
|
||
# remove global prefix if it's already set
|
||
# the running shell process will choose a node binary and a global package directory breaks version managers
|
||
unset PREFIX
|
||
|
||
# Support Homebrew on M1
|
||
HOMEBREW_M1_BIN=/opt/homebrew/bin
|
||
if [[ -d $HOMEBREW_M1_BIN && ! $PATH =~ $HOMEBREW_M1_BIN ]]; then
|
||
export PATH="$HOMEBREW_M1_BIN:$PATH"
|
||
fi
|
||
|
||
# Define NVM_DIR and source the nvm.sh setup script
|
||
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"
|
||
|
||
# Source nvm with '--no-use' and then `nvm use` to respect .nvmrc
|
||
# See: https://github.com/nvm-sh/nvm/issues/2053
|
||
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
|
||
# shellcheck source=/dev/null
|
||
. "$HOME/.nvm/nvm.sh" --no-use
|
||
nvm use 2> /dev/null || nvm use default
|
||
elif [[ -x "$(command -v brew)" && -s "$(brew --prefix nvm)/nvm.sh" ]]; then
|
||
# shellcheck source=/dev/null
|
||
. "$(brew --prefix nvm)/nvm.sh" --no-use
|
||
nvm use 2> /dev/null || nvm use default
|
||
fi
|
||
|
||
# Set up the nodenv node version manager if present
|
||
if [[ -x "$HOME/.nodenv/bin/nodenv" ]]; then
|
||
eval "$("$HOME/.nodenv/bin/nodenv" init -)"
|
||
elif [[ -x "$(command -v brew)" && -x "$(brew --prefix nodenv)/bin/nodenv" ]]; then
|
||
eval "$("$(brew --prefix nodenv)/bin/nodenv" init -)"
|
||
fi
|
||
|
||
# Set up the ndenv of anyenv if preset
|
||
if [[ ! -x node && -d ${HOME}/.anyenv/bin ]]; then
|
||
export PATH=${HOME}/.anyenv/bin:${PATH}
|
||
if [[ "$(anyenv envs | grep -c ndenv )" -eq 1 ]]; then
|
||
eval "$(anyenv init -)"
|
||
fi
|
||
fi
|
||
|
||
# Set up asdf-vm if present
|
||
if [[ -f "$ASDF_DIR/asdf.sh" ]]; then
|
||
# shellcheck source=/dev/null
|
||
. "$ASDF_DIR/asdf.sh"
|
||
elif [[ -f "$HOME/.asdf/asdf.sh" ]]; then
|
||
# shellcheck source=/dev/null
|
||
. "$HOME/.asdf/asdf.sh"
|
||
elif [[ -x "$(command -v brew)" && -f "$(brew --prefix asdf)/asdf.sh" ]]; then
|
||
# shellcheck source=/dev/null
|
||
. "$(brew --prefix asdf)/asdf.sh"
|
||
fi
|
||
|
||
# Set up volta if present
|
||
if [[ -x "$HOME/.volta/bin/node" ]]; then
|
||
export VOLTA_HOME="$HOME/.volta"
|
||
export PATH="$VOLTA_HOME/bin:$PATH"
|
||
fi
|
||
|
||
# Set up the fnm node version manager if present
|
||
if [[ -x "$HOME/.fnm/fnm" ]]; then
|
||
eval "$("$HOME/.fnm/fnm" env)"
|
||
elif [[ -x "$(command -v brew)" && -x "$(brew --prefix fnm)/bin/fnm" ]]; then
|
||
eval "$("$(brew --prefix fnm)/bin/fnm" env)"
|
||
fi
|