Clean cruft out of envsetup.sh
Most if it moved to build/soong/bin as standalone scripts Bug: 340648588 Test: ran the scripts Change-Id: I69bff94a2293e2563d58d29b12f7926a9229f9d4
This commit is contained in:
289
envsetup.sh
289
envsetup.sh
@@ -93,7 +93,6 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y
|
|||||||
- godir: Go to the directory containing a file.
|
- godir: Go to the directory containing a file.
|
||||||
- allmod: List all modules.
|
- allmod: List all modules.
|
||||||
- gomod: Go to the directory containing a module.
|
- gomod: Go to the directory containing a module.
|
||||||
- bmod: Get the Bazel label of a Soong module if it is converted with bp2build.
|
|
||||||
- pathmod: Get the directory containing a module.
|
- pathmod: Get the directory containing a module.
|
||||||
- outmod: Gets the location of a module's installed outputs with a certain extension.
|
- outmod: Gets the location of a module's installed outputs with a certain extension.
|
||||||
- dirmods: Gets the modules defined in a given directory.
|
- dirmods: Gets the modules defined in a given directory.
|
||||||
@@ -458,7 +457,6 @@ function addcompletions()
|
|||||||
complete -F _complete_android_module_names gomod
|
complete -F _complete_android_module_names gomod
|
||||||
complete -F _complete_android_module_names outmod
|
complete -F _complete_android_module_names outmod
|
||||||
complete -F _complete_android_module_names installmod
|
complete -F _complete_android_module_names installmod
|
||||||
complete -F _complete_android_module_names bmod
|
|
||||||
complete -F _complete_android_module_names m
|
complete -F _complete_android_module_names m
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -888,18 +886,6 @@ function qpid() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# syswrite - disable verity, reboot if needed, and remount image
|
|
||||||
#
|
|
||||||
# Easy way to make system.img/etc writable
|
|
||||||
function syswrite() {
|
|
||||||
adb wait-for-device && adb root && adb wait-for-device || return 1
|
|
||||||
if [[ $(adb disable-verity | grep -i "reboot") ]]; then
|
|
||||||
echo "rebooting"
|
|
||||||
adb reboot && adb wait-for-device && adb root && adb wait-for-device || return 1
|
|
||||||
fi
|
|
||||||
adb remount || return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# coredump_setup - enable core dumps globally for any process
|
# coredump_setup - enable core dumps globally for any process
|
||||||
# that has the core-file-size limit set correctly
|
# that has the core-file-size limit set correctly
|
||||||
#
|
#
|
||||||
@@ -1002,146 +988,11 @@ function is64bit()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
case `uname -s` in
|
|
||||||
Darwin)
|
|
||||||
function sgrep()
|
|
||||||
{
|
|
||||||
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cc|cpp|hpp|S|java|kt|xml|sh|mk|aidl|vts|proto|rs|go)' \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
function sgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.\(c\|h\|cc\|cpp\|hpp\|S\|java\|kt\|xml\|sh\|mk\|aidl\|vts\|proto\|rs\|go\)' \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
function gettargetarch
|
function gettargetarch
|
||||||
{
|
{
|
||||||
get_build_var TARGET_ARCH
|
get_build_var TARGET_ARCH
|
||||||
}
|
}
|
||||||
|
|
||||||
function ggrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.gradle" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function gogrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.go" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function jgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function rsgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.rs" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function jsongrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.json" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function tomlgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.toml" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function ktgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.kt" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function cgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f \( -name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function resgrep()
|
|
||||||
{
|
|
||||||
local dir
|
|
||||||
for dir in `find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -name res -type d`; do
|
|
||||||
find $dir -type f -name '*\.xml' -exec grep --color -n "$@" {} +
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function mangrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o -type f -name 'AndroidManifest.xml' \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function owngrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o -type f -name 'OWNERS' \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function sepgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o -name sepolicy -type d \
|
|
||||||
-exec grep --color -n -r --exclude-dir=\.git "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function rcgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.rc*" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function pygrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.py" \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
case `uname -s` in
|
|
||||||
Darwin)
|
|
||||||
function mgrep()
|
|
||||||
{
|
|
||||||
find -E . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o \( -iregex '.*/(Makefile|Makefile\..*|.*\.make|.*\.mak|.*\.mk|.*\.bp)' -o -regex '(.*/)?(build|soong)/.*[^/]*\.go' \) -type f \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function treegrep()
|
|
||||||
{
|
|
||||||
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cpp|hpp|S|java|kt|xml)' \
|
|
||||||
-exec grep --color -n -i "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
function mgrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o \( -regextype posix-egrep -iregex '(.*\/Makefile|.*\/Makefile\..*|.*\.make|.*\.mak|.*\.mk|.*\.bp)' -o -regextype posix-extended -regex '(.*/)?(build|soong)/.*[^/]*\.go' \) -type f \
|
|
||||||
-exec grep --color -n "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
function treegrep()
|
|
||||||
{
|
|
||||||
find . -name .repo -prune -o -name .git -prune -o -regextype posix-egrep -iregex '.*\.(c|h|cpp|hpp|S|java|kt|xml)' -type f \
|
|
||||||
-exec grep --color -n -i "$@" {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
function getprebuilt
|
function getprebuilt
|
||||||
{
|
{
|
||||||
get_abs_build_var ANDROID_PREBUILTS
|
get_abs_build_var ANDROID_PREBUILTS
|
||||||
@@ -1344,7 +1195,6 @@ function godir () {
|
|||||||
\cd $T/$pathname
|
\cd $T/$pathname
|
||||||
}
|
}
|
||||||
|
|
||||||
# Update module-info.json in out.
|
|
||||||
function refreshmod() {
|
function refreshmod() {
|
||||||
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
|
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
|
||||||
echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2
|
echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2
|
||||||
@@ -1384,48 +1234,6 @@ function allmod() {
|
|||||||
cat $ANDROID_PRODUCT_OUT/all_modules.txt 2>/dev/null
|
cat $ANDROID_PRODUCT_OUT/all_modules.txt 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Return the Bazel label of a Soong module if it is converted with bp2build.
|
|
||||||
function bmod()
|
|
||||||
(
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
echo "usage: bmod <module 1> <module 2> ... <module n>" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We could run bp2build here, but it might trigger bp2build invalidation
|
|
||||||
# when used with `b` (e.g. --run_soong_tests) and/or add unnecessary waiting
|
|
||||||
# time overhead.
|
|
||||||
#
|
|
||||||
# For a snappy result, use the latest generated version in soong_injection,
|
|
||||||
# and ask users to run m bp2build if it doesn't exist.
|
|
||||||
converted_json="$(get_abs_build_var OUT_DIR)/soong/soong_injection/metrics/converted_modules_path_map.json"
|
|
||||||
|
|
||||||
if [ ! -f ${converted_json} ]; then
|
|
||||||
echo "bp2build files not found. Have you ran 'm bp2build'?" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
modules=()
|
|
||||||
for m in "$@"; do
|
|
||||||
modules+=("\"$m\",")
|
|
||||||
done
|
|
||||||
local res=$(python3 -c "import json
|
|
||||||
modules = [${modules[*]}]
|
|
||||||
converted_json='$converted_json'
|
|
||||||
bp2build_converted_map = json.load(open(converted_json))
|
|
||||||
for module in modules:
|
|
||||||
if module not in bp2build_converted_map:
|
|
||||||
print(module + ' is not converted to Bazel.')
|
|
||||||
else:
|
|
||||||
print(bp2build_converted_map[module] + ':' + module)")
|
|
||||||
|
|
||||||
echo "${res}"
|
|
||||||
unconverted_count=$(echo "${res}" | grep -c "not converted to Bazel")
|
|
||||||
if [[ ${unconverted_count} -ne 0 ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
|
|
||||||
# Get the path of a specific module in the android tree, as cached in module-info.json.
|
# Get the path of a specific module in the android tree, as cached in module-info.json.
|
||||||
# If any build change is made, and it should be reflected in the output, you should run
|
# If any build change is made, and it should be reflected in the output, you should run
|
||||||
# 'refreshmod' first. Note: This is the inverse of dirmods.
|
# 'refreshmod' first. Note: This is the inverse of dirmods.
|
||||||
@@ -1598,50 +1406,6 @@ function get_make_command()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function _wrap_build()
|
|
||||||
{
|
|
||||||
if [[ "${ANDROID_QUIET_BUILD:-}" == true ]]; then
|
|
||||||
"$@"
|
|
||||||
return $?
|
|
||||||
fi
|
|
||||||
local start_time=$(date +"%s")
|
|
||||||
"$@"
|
|
||||||
local ret=$?
|
|
||||||
local end_time=$(date +"%s")
|
|
||||||
local tdiff=$(($end_time-$start_time))
|
|
||||||
local hours=$(($tdiff / 3600 ))
|
|
||||||
local mins=$((($tdiff % 3600) / 60))
|
|
||||||
local secs=$(($tdiff % 60))
|
|
||||||
local ncolors=$(tput colors 2>/dev/null)
|
|
||||||
if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then
|
|
||||||
color_failed=$'\E'"[0;31m"
|
|
||||||
color_success=$'\E'"[0;32m"
|
|
||||||
color_warning=$'\E'"[0;33m"
|
|
||||||
color_reset=$'\E'"[00m"
|
|
||||||
else
|
|
||||||
color_failed=""
|
|
||||||
color_success=""
|
|
||||||
color_reset=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
if [ $ret -eq 0 ] ; then
|
|
||||||
echo -n "${color_success}#### build completed successfully "
|
|
||||||
else
|
|
||||||
echo -n "${color_failed}#### failed to build some targets "
|
|
||||||
fi
|
|
||||||
if [ $hours -gt 0 ] ; then
|
|
||||||
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
|
|
||||||
elif [ $mins -gt 0 ] ; then
|
|
||||||
printf "(%02g:%02g (mm:ss))" $mins $secs
|
|
||||||
elif [ $secs -gt 0 ] ; then
|
|
||||||
printf "(%s seconds)" $secs
|
|
||||||
fi
|
|
||||||
echo " ####${color_reset}"
|
|
||||||
echo
|
|
||||||
return $ret
|
|
||||||
}
|
|
||||||
|
|
||||||
function _trigger_build()
|
function _trigger_build()
|
||||||
(
|
(
|
||||||
local -r bc="$1"; shift
|
local -r bc="$1"; shift
|
||||||
@@ -1659,31 +1423,6 @@ function _trigger_build()
|
|||||||
return $ret
|
return $ret
|
||||||
)
|
)
|
||||||
|
|
||||||
function m()
|
|
||||||
(
|
|
||||||
_trigger_build "all-modules" "$@"
|
|
||||||
)
|
|
||||||
|
|
||||||
function mm()
|
|
||||||
(
|
|
||||||
_trigger_build "modules-in-a-dir-no-deps" "$@"
|
|
||||||
)
|
|
||||||
|
|
||||||
function mmm()
|
|
||||||
(
|
|
||||||
_trigger_build "modules-in-dirs-no-deps" "$@"
|
|
||||||
)
|
|
||||||
|
|
||||||
function mma()
|
|
||||||
(
|
|
||||||
_trigger_build "modules-in-a-dir" "$@"
|
|
||||||
)
|
|
||||||
|
|
||||||
function mmma()
|
|
||||||
(
|
|
||||||
_trigger_build "modules-in-dirs" "$@"
|
|
||||||
)
|
|
||||||
|
|
||||||
function make()
|
function make()
|
||||||
{
|
{
|
||||||
_wrap_build $(get_make_command "$@") "$@"
|
_wrap_build $(get_make_command "$@") "$@"
|
||||||
@@ -1810,11 +1549,35 @@ function showcommands() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# These functions used to be here but are now standalone scripts.
|
# These functions used to be here but are now standalone scripts
|
||||||
# Unset these for the time being so the real script is picked up.
|
# in build/soong/bin. Unset these for the time being so the real
|
||||||
|
# script is picked up.
|
||||||
# TODO: Remove this some time after a suitable delay (maybe 2025?)
|
# TODO: Remove this some time after a suitable delay (maybe 2025?)
|
||||||
unset aninja
|
unset aninja
|
||||||
unset overrideflags
|
unset overrideflags
|
||||||
|
unset m
|
||||||
|
unset mm
|
||||||
|
unset mmm
|
||||||
|
unset mma
|
||||||
|
unset mmma
|
||||||
|
unset cgrep
|
||||||
|
unset ggrep
|
||||||
|
unset gogrep
|
||||||
|
unset jgrep
|
||||||
|
unset jsongrep
|
||||||
|
unset ktgrep
|
||||||
|
unset mangrep
|
||||||
|
unset mgrep
|
||||||
|
unset owngrep
|
||||||
|
unset pygrep
|
||||||
|
unset rcgrep
|
||||||
|
unset resgrep
|
||||||
|
unset rsgrep
|
||||||
|
unset sepgrep
|
||||||
|
unset sgrep
|
||||||
|
unset tomlgrep
|
||||||
|
unset treegrep
|
||||||
|
unset syswrite
|
||||||
|
|
||||||
|
|
||||||
validate_current_shell
|
validate_current_shell
|
||||||
|
@@ -46,7 +46,7 @@ function require_top
|
|||||||
{
|
{
|
||||||
TOP=$(gettop)
|
TOP=$(gettop)
|
||||||
if [[ ! $TOP ]] ; then
|
if [[ ! $TOP ]] ; then
|
||||||
echo "Can not locate root of source tree. $(basename $0) must be run from within the Android source tree." >&2
|
echo "Can not locate root of source tree. $(basename $0) must be run from within the Android source tree or TOP must be set." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -80,4 +80,50 @@ function getoutdir
|
|||||||
echo "${out_dir}"
|
echo "${out_dir}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pretty print the build status and duration
|
||||||
|
function _wrap_build()
|
||||||
|
{
|
||||||
|
if [[ "${ANDROID_QUIET_BUILD:-}" == true ]]; then
|
||||||
|
"$@"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
local start_time=$(date +"%s")
|
||||||
|
"$@"
|
||||||
|
local ret=$?
|
||||||
|
local end_time=$(date +"%s")
|
||||||
|
local tdiff=$(($end_time-$start_time))
|
||||||
|
local hours=$(($tdiff / 3600 ))
|
||||||
|
local mins=$((($tdiff % 3600) / 60))
|
||||||
|
local secs=$(($tdiff % 60))
|
||||||
|
local ncolors=$(tput colors 2>/dev/null)
|
||||||
|
if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then
|
||||||
|
color_failed=$'\E'"[0;31m"
|
||||||
|
color_success=$'\E'"[0;32m"
|
||||||
|
color_warning=$'\E'"[0;33m"
|
||||||
|
color_reset=$'\E'"[00m"
|
||||||
|
else
|
||||||
|
color_failed=""
|
||||||
|
color_success=""
|
||||||
|
color_reset=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
if [ $ret -eq 0 ] ; then
|
||||||
|
echo -n "${color_success}#### build completed successfully "
|
||||||
|
else
|
||||||
|
echo -n "${color_failed}#### failed to build some targets "
|
||||||
|
fi
|
||||||
|
if [ $hours -gt 0 ] ; then
|
||||||
|
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
|
||||||
|
elif [ $mins -gt 0 ] ; then
|
||||||
|
printf "(%02g:%02g (mm:ss))" $mins $secs
|
||||||
|
elif [ $secs -gt 0 ] ; then
|
||||||
|
printf "(%s seconds)" $secs
|
||||||
|
fi
|
||||||
|
echo " ####${color_reset}"
|
||||||
|
echo
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user