Merge "Clean cruft out of envsetup.sh" into main
This commit is contained in:
commit
9f94972ab0
2 changed files with 73 additions and 264 deletions
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.
|
||||
- allmod: List all modules.
|
||||
- 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.
|
||||
- outmod: Gets the location of a module's installed outputs with a certain extension.
|
||||
- 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 outmod
|
||||
complete -F _complete_android_module_names installmod
|
||||
complete -F _complete_android_module_names bmod
|
||||
complete -F _complete_android_module_names m
|
||||
}
|
||||
|
||||
|
@ -888,18 +886,6 @@ function qpid() {
|
|||
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
|
||||
# that has the core-file-size limit set correctly
|
||||
#
|
||||
|
@ -1002,146 +988,11 @@ function is64bit()
|
|||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
get_abs_build_var ANDROID_PREBUILTS
|
||||
|
@ -1344,7 +1195,6 @@ function godir () {
|
|||
\cd $T/$pathname
|
||||
}
|
||||
|
||||
# Update module-info.json in out.
|
||||
function refreshmod() {
|
||||
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
|
||||
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
|
||||
}
|
||||
|
||||
# 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.
|
||||
# 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.
|
||||
|
@ -1598,50 +1406,6 @@ function get_make_command()
|
|||
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()
|
||||
(
|
||||
local -r bc="$1"; shift
|
||||
|
@ -1659,31 +1423,6 @@ function _trigger_build()
|
|||
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()
|
||||
{
|
||||
_wrap_build $(get_make_command "$@") "$@"
|
||||
|
@ -1810,11 +1549,35 @@ function showcommands() {
|
|||
fi
|
||||
}
|
||||
|
||||
# These functions used to be here but are now standalone scripts.
|
||||
# Unset these for the time being so the real script is picked up.
|
||||
# These functions used to be here but are now standalone scripts
|
||||
# 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?)
|
||||
unset aninja
|
||||
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
|
||||
|
|
|
@ -46,7 +46,7 @@ function require_top
|
|||
{
|
||||
TOP=$(gettop)
|
||||
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
|
||||
fi
|
||||
}
|
||||
|
@ -80,4 +80,50 @@ function getoutdir
|
|||
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
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue