forked from openkylin/platform_build
Source rbesetup.sh from any location inside of a repo directory.
The current rbesetup.sh has to be source from the root directory of the checked out repo since it has a relative path to the sourced build/envsetup.sh script. A function was written in rbesetup.sh script to source the rbesetup.sh script anywhere inside of a checked out repo. Added additional error checking to validate the envsetup.sh is available and not to continue sourcing the script if envsetup.sh script is not found. Fixes: b/169438960 Test: Sourced the rbesetup script from * external directory * inside of a symlink * outside of repo (sourcing fails which is correct) * root repo Change-Id: I2db66a444074adca4d4ab87b8786e9044a3646f8
This commit is contained in:
parent
0de50208a3
commit
96a3f9df33
31
rbesetup.sh
31
rbesetup.sh
|
@ -1,4 +1,31 @@
|
||||||
source build/envsetup.sh
|
function _source_env_setup_script() {
|
||||||
|
local -r ENV_SETUP_SCRIPT="build/make/envsetup.sh"
|
||||||
|
local -r TOP_DIR=$(
|
||||||
|
while [[ ! -f "${ENV_SETUP_SCRIPT}" ]] && [[ "${PWD}" != "/" ]]; do
|
||||||
|
\cd ..
|
||||||
|
done
|
||||||
|
if [[ -f "${ENV_SETUP_SCRIPT}" ]]; then
|
||||||
|
echo "$(PWD= /bin/pwd -P)"
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
local -r FULL_PATH_ENV_SETUP_SCRIPT="${TOP_DIR}/${ENV_SETUP_SCRIPT}"
|
||||||
|
if [[ ! -f "${FULL_PATH_ENV_SETUP_SCRIPT}" ]]; then
|
||||||
|
echo "ERROR: Unable to source ${ENV_SETUP_SCRIPT}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Need to change directory to the repo root so vendor scripts can be sourced
|
||||||
|
# as well.
|
||||||
|
local -r CUR_DIR=$PWD
|
||||||
|
\cd "${TOP_DIR}"
|
||||||
|
source "${FULL_PATH_ENV_SETUP_SCRIPT}"
|
||||||
|
\cd "${CUR_DIR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# This function needs to run first as the remaining defining functions may be
|
||||||
|
# using the envsetup.sh defined functions.
|
||||||
|
_source_env_setup_script || return
|
||||||
|
|
||||||
# This function prefixes the given command with appropriate variables needed
|
# This function prefixes the given command with appropriate variables needed
|
||||||
# for the build to be executed with RBE.
|
# for the build to be executed with RBE.
|
||||||
|
@ -28,7 +55,7 @@ function use_rbe() {
|
||||||
# ANDROID_ENABLE_METRICS_UPLOAD.
|
# ANDROID_ENABLE_METRICS_UPLOAD.
|
||||||
function _export_metrics_uploader() {
|
function _export_metrics_uploader() {
|
||||||
local uploader_path="$(gettop)/vendor/google/misc/metrics_uploader_prebuilt/metrics_uploader.sh"
|
local uploader_path="$(gettop)/vendor/google/misc/metrics_uploader_prebuilt/metrics_uploader.sh"
|
||||||
if [ -x "${uploader_path}" ]; then
|
if [[ -x "${uploader_path}" ]]; then
|
||||||
export ANDROID_ENABLE_METRICS_UPLOAD="${uploader_path}"
|
export ANDROID_ENABLE_METRICS_UPLOAD="${uploader_path}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue