Minor cleanup for script consistency and adherence to Google shell style guide.

Test: manual

Change-Id: Ie9fd197cee5e934a0b89898b85d1a97adcec6348
This commit is contained in:
Matt Alexander 2020-05-19 00:34:20 +00:00
parent f244a36850
commit d92718356d
1 changed files with 173 additions and 242 deletions

View File

@ -51,8 +51,7 @@ EOF
}
# Get all the build variables needed by this script in a single call to the build system.
function build_build_var_cache()
{
function build_build_var_cache() {
local T=$(gettop)
# Grep out the variable names from the script.
cached_vars=(`cat $T/build/envsetup.sh | tr '()' ' ' | awk '{for(i=1;i<=NF;i++) if($i~/get_build_var/) print $(i+1)}' | sort -u | tr '\n' ' '`)
@ -64,8 +63,7 @@ function build_build_var_cache()
--var-prefix=var_cache_ \
--abs-var-prefix=abs_var_cache_`
local ret=$?
if [ $ret -ne 0 ]
then
if [ $ret -ne 0 ]; then
unset build_dicts_script
return $ret
fi
@ -73,8 +71,7 @@ function build_build_var_cache()
eval "$build_dicts_script"
ret=$?
unset build_dicts_script
if [ $ret -ne 0 ]
then
if [ $ret -ne 0 ]; then
return $ret
fi
BUILD_VAR_CACHE_READY="true"
@ -82,8 +79,7 @@ function build_build_var_cache()
# Delete the build var cache, so that we can still call into the build system
# to get build variables not listed in this script.
function destroy_build_var_cache()
{
function destroy_build_var_cache() {
unset BUILD_VAR_CACHE_READY
local v
for v in $cached_vars; do
@ -97,12 +93,10 @@ function destroy_build_var_cache()
}
# Get the value of a build variable as an absolute path.
function get_abs_build_var()
{
if [ "$BUILD_VAR_CACHE_READY" = "true" ]
then
function get_abs_build_var() {
if [ "$BUILD_VAR_CACHE_READY" == "true" ]; then
eval "echo \"\${abs_var_cache_$1}\""
return
return
fi
local T=$(gettop)
@ -114,10 +108,8 @@ function get_abs_build_var()
}
# Get the exact value of a build variable.
function get_build_var()
{
if [ "$BUILD_VAR_CACHE_READY" = "true" ]
then
function get_build_var() {
if [ "$BUILD_VAR_CACHE_READY" == "true" ]; then
eval "echo \"\${var_cache_$1}\""
return 0
fi
@ -131,8 +123,7 @@ function get_build_var()
}
# check to see if the supplied product is one we can build
function check_product()
{
function check_product() {
local T=$(gettop)
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP." >&2
@ -149,21 +140,18 @@ function check_product()
VARIANT_CHOICES=(user userdebug eng)
# check to see if the supplied variant is valid
function check_variant()
{
function check_variant() {
local v
for v in ${VARIANT_CHOICES[@]}
do
if [ "$v" = "$1" ]
then
if [ "$v" == "$1" ]; then
return 0
fi
done
return 1
}
function setpaths()
{
function setpaths() {
local T=$(gettop)
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP."
@ -185,10 +173,10 @@ function setpaths()
# due to "C:\Program Files" being in the path.
# out with the old
if [ -n "$ANDROID_BUILD_PATHS" ] ; then
if [ -n "$ANDROID_BUILD_PATHS" ]; then
export PATH=${PATH/$ANDROID_BUILD_PATHS/}
fi
if [ -n "$ANDROID_PRE_BUILD_PATHS" ] ; then
if [ -n "$ANDROID_PRE_BUILD_PATHS" ]; then
export PATH=${PATH/$ANDROID_PRE_BUILD_PATHS/}
# strip leading ':', if any
export PATH=${PATH/:%/}
@ -209,14 +197,18 @@ function setpaths()
local ARCH=$(get_build_var TARGET_ARCH)
local toolchaindir toolchaindir2=
case $ARCH in
x86) toolchaindir=x86/x86_64-linux-android-$targetgccversion/bin
x86)
toolchaindir=x86/x86_64-linux-android-$targetgccversion/bin
;;
x86_64) toolchaindir=x86/x86_64-linux-android-$targetgccversion/bin
x86_64)
toolchaindir=x86/x86_64-linux-android-$targetgccversion/bin
;;
arm) toolchaindir=arm/arm-linux-androideabi-$targetgccversion/bin
arm)
toolchaindir=arm/arm-linux-androideabi-$targetgccversion/bin
;;
arm64) toolchaindir=aarch64/aarch64-linux-android-$targetgccversion/bin;
toolchaindir2=arm/arm-linux-androideabi-$targetgccversion2/bin
arm64)
toolchaindir=aarch64/aarch64-linux-android-$targetgccversion/bin
toolchaindir2=arm/arm-linux-androideabi-$targetgccversion2/bin
;;
*)
echo "Can't find toolchain for unknown architecture: $ARCH"
@ -317,8 +309,7 @@ function setpaths()
#export HOST_EXTRACFLAGS="-I "$T/system/kernel_headers/host_include
}
function printconfig()
{
function printconfig() {
local T=$(gettop)
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP." >&2
@ -327,8 +318,7 @@ function printconfig()
get_build_var report_config
}
function set_stuff_for_environment()
{
function set_stuff_for_environment() {
setpaths
set_sequence_number
@ -337,8 +327,7 @@ function set_stuff_for_environment()
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
}
function set_sequence_number()
{
function set_sequence_number() {
export BUILD_ENV_SEQUENCE_NUMBER=13
}
@ -353,8 +342,7 @@ function should_add_completion() {
return 0
}
function addcompletions()
{
function addcompletions() {
local T dir f
# Keep us from trying to run in something that's neither bash nor zsh.
@ -382,7 +370,7 @@ function addcompletions()
fi
done
if should_add_completion bit ; then
if should_add_completion bit; then
complete -C "bit --tab" bit
fi
if [ -z "$ZSH_VERSION" ]; then
@ -395,8 +383,7 @@ function addcompletions()
complete -F _complete_android_module_names m
}
function choosetype()
{
function choosetype() {
echo "Build type choices are:"
echo " 1. release"
echo " 2. debug"
@ -411,7 +398,7 @@ function choosetype()
while [ -z $TARGET_BUILD_TYPE ]
do
echo -n "Which would you like? ["$DEFAULT_NUM"] "
if [ -z "$1" ] ; then
if [ -z "$1" ]; then
read ANSWER
else
echo $1
@ -439,7 +426,7 @@ function choosetype()
echo
;;
esac
if [ -n "$1" ] ; then
if [ -n "$1" ]; then
break
fi
done
@ -455,10 +442,9 @@ function choosetype()
# that kinda works with a generic product, but really, you should
# pick a product by name.
#
function chooseproduct()
{
function chooseproduct() {
local default_value
if [ "x$TARGET_PRODUCT" != x ] ; then
if [ "x$TARGET_PRODUCT" != x ]; then
default_value=$TARGET_PRODUCT
else
default_value=aosp_arm
@ -470,24 +456,23 @@ function chooseproduct()
while [ -z "$TARGET_PRODUCT" ]
do
echo -n "Which product would you like? [$default_value] "
if [ -z "$1" ] ; then
if [ -z "$1" ]; then
read ANSWER
else
echo $1
ANSWER=$1
fi
if [ -z "$ANSWER" ] ; then
if [ -z "$ANSWER" ]; then
export TARGET_PRODUCT=$default_value
else
if check_product $ANSWER
then
if check_product $ANSWER; then
export TARGET_PRODUCT=$ANSWER
else
echo "** Not a valid product: $ANSWER"
fi
fi
if [ -n "$1" ] ; then
if [ -n "$1" ]; then
break
fi
done
@ -497,8 +482,7 @@ function chooseproduct()
destroy_build_var_cache
}
function choosevariant()
{
function choosevariant() {
echo "Variant choices are:"
local index=1
local v
@ -517,35 +501,33 @@ function choosevariant()
while [ -z "$TARGET_BUILD_VARIANT" ]
do
echo -n "Which would you like? [$default_value] "
if [ -z "$1" ] ; then
if [ -z "$1" ]; then
read ANSWER
else
echo $1
ANSWER=$1
fi
if [ -z "$ANSWER" ] ; then
if [ -z "$ANSWER" ]; then
export TARGET_BUILD_VARIANT=$default_value
elif (echo -n $ANSWER | grep -q -e "^[0-9][0-9]*$") ; then
if [ "$ANSWER" -le "${#VARIANT_CHOICES[@]}" ] ; then
elif (echo -n $ANSWER | grep -q -e "^[0-9][0-9]*$"); then
if [ "$ANSWER" -le "${#VARIANT_CHOICES[@]}" ]; then
export TARGET_BUILD_VARIANT=${VARIANT_CHOICES[@]:$(($ANSWER-1)):1}
fi
else
if check_variant $ANSWER
then
if check_variant $ANSWER; then
export TARGET_BUILD_VARIANT=$ANSWER
else
echo "** Not a valid variant: $ANSWER"
fi
fi
if [ -n "$1" ] ; then
if [ -n "$1" ]; then
break
fi
done
}
function choosecombo()
{
function choosecombo() {
choosetype $1
echo
@ -563,8 +545,7 @@ function choosecombo()
destroy_build_var_cache
}
function add_lunch_combo()
{
function add_lunch_combo() {
if [ -n "$ZSH_VERSION" ]; then
echo -n "${funcfiletrace[1]}: "
else
@ -573,8 +554,7 @@ function add_lunch_combo()
echo "add_lunch_combo is obsolete. Use COMMON_LUNCH_CHOICES in your AndroidProducts.mk instead."
}
function print_lunch_menu()
{
function print_lunch_menu() {
local uname=$(uname)
local choices
choices=$(TARGET_BUILD_APPS= get_build_var COMMON_LUNCH_CHOICES 2>/dev/null)
@ -584,8 +564,7 @@ function print_lunch_menu()
echo "You're building on" $uname
echo
if [ $ret -ne 0 ]
then
if [ $ret -ne 0 ]; then
echo "Warning: Cannot display lunch menu."
echo
echo "Note: You can invoke lunch with an explicit target:"
@ -608,8 +587,7 @@ function print_lunch_menu()
echo
}
function lunch()
{
function lunch() {
local answer
if [[ $# -gt 1 ]]; then
@ -627,17 +605,13 @@ function lunch()
local selection=
if [ -z "$answer" ]
then
if [ -z "$answer" ]; then
selection=aosp_arm-eng
elif (echo -n $answer | grep -q -e "^[0-9][0-9]*$")
then
elif (echo -n $answer | grep -q -e "^[0-9][0-9]*$"); then
local choices=($(TARGET_BUILD_APPS= get_build_var COMMON_LUNCH_CHOICES))
if [ $answer -le ${#choices[@]} ]
then
if [ $answer -le ${#choices[@]} ]; then
# array in zsh starts from 1 instead of 0.
if [ -n "$ZSH_VERSION" ]
then
if [ -n "$ZSH_VERSION" ]; then
selection=${choices[$(($answer))]}
else
selection=${choices[$(($answer-1))]}
@ -660,8 +634,7 @@ function lunch()
fi
fi
if [ -z "$product" ]
then
if [ -z "$product" ]; then
echo
echo "Invalid lunch combo: $selection"
return 1
@ -671,8 +644,7 @@ function lunch()
TARGET_BUILD_VARIANT=$variant \
TARGET_PLATFORM_VERSION=$version \
build_build_var_cache
if [ $? -ne 0 ]
then
if [ $? -ne 0 ]; then
return 1
fi
@ -694,8 +666,7 @@ function lunch()
unset COMMON_LUNCH_CHOICES_CACHE
# Tab completion for lunch.
function _lunch()
{
function _lunch() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
@ -711,8 +682,7 @@ function _lunch()
# Configures the build to build unbundled apps.
# Run tapas with one or more app names (from LOCAL_PACKAGE_NAME)
function tapas()
{
function tapas() {
local showHelp="$(echo $* | xargs -n 1 echo | \grep -E '^(help)$' | xargs)"
local arch="$(echo $* | xargs -n 1 echo | \grep -E '^(arm|x86|arm64|x86_64)$' | xargs)"
local variant="$(echo $* | xargs -n 1 echo | \grep -E '^(user|userdebug|eng)$' | xargs)"
@ -739,9 +709,15 @@ function tapas()
local product=aosp_arm
case $arch in
x86) product=aosp_x86;;
arm64) product=aosp_arm64;;
x86_64) product=aosp_x86_64;;
x86)
product=aosp_x86
;;
arm64)
product=aosp_arm64
;;
x86_64)
product=aosp_x86_64
;;
esac
if [ -z "$variant" ]; then
variant=eng
@ -765,14 +741,13 @@ function tapas()
destroy_build_var_cache
}
function gettop
{
function gettop {
local TOPFILE=build/make/core/envsetup.mk
if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then
if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ]; then
# The following circumlocution ensures we remove symlinks from TOP.
(cd $TOP; PWD= /bin/pwd)
else
if [ -f $TOPFILE ] ; then
if [ -f $TOPFILE ]; then
# The following circumlocution (repeated below as well) ensures
# that we record the true directory name and not one that is
# faked up with symlink names.
@ -792,8 +767,7 @@ function gettop
fi
}
function croot()
{
function croot() {
local T=$(gettop)
if [ "$T" ]; then
if [ "$1" ]; then
@ -806,8 +780,7 @@ function croot()
fi
}
function _croot()
{
function _croot() {
local T=$(gettop)
if [ "$T" ]; then
local cur="${COMP_WORDS[COMP_CWORD]}"
@ -818,8 +791,7 @@ function _croot()
fi
}
function cproj()
{
function cproj() {
local TOPFILE=build/make/core/envsetup.mk
local HERE=$PWD
local T=
@ -840,17 +812,17 @@ function cproj()
function qpid() {
local prepend=''
local append=''
if [ "$1" = "--exact" ]; then
if [ "$1" == "--exact" ]; then
prepend=' '
append='$'
shift
elif [ "$1" = "--help" -o "$1" = "-h" ]; then
elif [ "$1" == "--help" -o "$1" == "-h" ]; then
echo "usage: qpid [[--exact] <process name|pid>"
return 255
fi
local EXE="$1"
if [ "$EXE" ] ; then
if [ "$EXE" ]; then
qpid | \grep "$prepend$EXE$append"
else
adb shell ps \
@ -866,92 +838,87 @@ function qpid() {
# if its core-file-size limit is not set already.
# NOTE: Core dumps are written to ramdisk; they will not survive a reboot!
function coredump_setup()
{
echo "Getting root...";
adb root;
adb wait-for-device;
function coredump_setup() {
echo "Getting root..."
adb root
adb wait-for-device
echo "Remounting root partition read-write...";
adb shell mount -w -o remount -t rootfs rootfs;
sleep 1;
adb wait-for-device;
adb shell mkdir -p /cores;
adb shell mount -t tmpfs tmpfs /cores;
adb shell chmod 0777 /cores;
echo "Remounting root partition read-write..."
adb shell mount -w -o remount -t rootfs rootfs
sleep 1
adb wait-for-device
adb shell mkdir -p /cores
adb shell mount -t tmpfs tmpfs /cores
adb shell chmod 0777 /cores
echo "Granting SELinux permission to dump in /cores...";
adb shell restorecon -R /cores;
echo "Granting SELinux permission to dump in /cores..."
adb shell restorecon -R /cores
echo "Set core pattern.";
adb shell 'echo /cores/core.%p > /proc/sys/kernel/core_pattern';
echo "Set core pattern."
adb shell 'echo /cores/core.%p > /proc/sys/kernel/core_pattern'
echo "Done."
}
# coredump_enable - enable core dumps for the specified process
# $1 = PID of process (e.g., $(pid mediaserver))
# $1 == PID of process (e.g., $(pid mediaserver))
#
# NOTE: coredump_setup must have been called as well for a core
# dump to actually be generated.
function coredump_enable()
{
local PID=$1;
function coredump_enable() {
local PID=$1
if [ -z "$PID" ]; then
printf "Expecting a PID!\n";
return;
fi;
echo "Setting core limit for $PID to infinite...";
printf "Expecting a PID!\n"
return
fi
echo "Setting core limit for $PID to infinite..."
adb shell /system/bin/ulimit -p $PID -c unlimited
}
# core - send SIGV and pull the core for process
# $1 = PID of process (e.g., $(pid mediaserver))
# $1 == PID of process (e.g., $(pid mediaserver))
#
# NOTE: coredump_setup must be called once per boot for core dumps to be
# enabled globally.
function core()
{
local PID=$1;
function core() {
local PID=$1
if [ -z "$PID" ]; then
printf "Expecting a PID!\n";
return;
fi;
printf "Expecting a PID!\n"
return
fi
local CORENAME=core.$PID;
local COREPATH=/cores/$CORENAME;
local SIG=SEGV;
local CORENAME=core.$PID
local COREPATH=/cores/$CORENAME
local SIG=SEGV
coredump_enable $1;
coredump_enable $1
local done=0;
local done=0
while [ $(adb shell "[ -d /proc/$PID ] && echo -n yes") ]; do
printf "\tSending SIG%s to %d...\n" $SIG $PID;
adb shell kill -$SIG $PID;
sleep 1;
done;
printf "\tSending SIG%s to %d...\n" $SIG $PID
adb shell kill -$SIG $PID
sleep 1
done
adb shell "while [ ! -f $COREPATH ] ; do echo waiting for $COREPATH to be generated; sleep 1; done"
echo "Done: core is under $COREPATH on device.";
adb shell "while [ ! -f $COREPATH ]; do echo waiting for $COREPATH to be generated; sleep 1; done"
echo "Done: core is under $COREPATH on device."
}
# systemstack - dump the current stack trace of all threads in the system process
# to the usual ANR traces file
function systemstack()
{
function systemstack() {
stacks system_server
}
# Read the ELF header from /proc/$PID/exe to determine if the process is
# 64-bit.
function is64bit()
{
function is64bit() {
local PID="$1"
if [ "$PID" ] ; then
if [[ "$(adb shell cat /proc/$PID/exe | xxd -l 1 -s 4 -p)" -eq "02" ]] ; then
if [ "$PID" ]; then
if [[ "$(adb shell cat /proc/$PID/exe | xxd -l 1 -s 4 -p)" -eq "02" ]]; then
echo "64"
else
echo ""
@ -963,107 +930,90 @@ function is64bit()
case `uname -s` in
Darwin)
function sgrep()
{
function sgrep() {
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cc|cpp|hpp|S|java|xml|sh|mk|aidl|vts|proto)' \
-exec grep --color -n "$@" {} +
}
;;
*)
function sgrep()
{
function sgrep() {
find . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.\(c\|h\|cc\|cpp\|hpp\|S\|java\|xml\|sh\|mk\|aidl\|vts\|proto\)' \
-exec grep --color -n "$@" {} +
}
;;
esac
function gettargetarch
{
function gettargetarch {
get_build_var TARGET_ARCH
}
function ggrep()
{
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()
{
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()
{
function jgrep() {
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" \
-exec grep --color -n "$@" {} +
}
function cgrep()
{
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()
{
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()
{
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()
{
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()
{
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()
{
function rcgrep() {
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.rc*" \
-exec grep --color -n "$@" {} +
}
case `uname -s` in
Darwin)
function mgrep()
{
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()
{
function treegrep() {
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cpp|hpp|S|java|xml)' \
-exec grep --color -n -i "$@" {} +
}
;;
*)
function mgrep()
{
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()
{
function treegrep() {
find . -name .repo -prune -o -name .git -prune -o -regextype posix-egrep -iregex '.*\.(c|h|cpp|hpp|S|java|xml)' -type f \
-exec grep --color -n -i "$@" {} +
}
@ -1071,13 +1021,11 @@ case `uname -s` in
;;
esac
function getprebuilt
{
function getprebuilt {
get_abs_build_var ANDROID_PREBUILTS
}
function tracedmdump()
{
function tracedmdump() {
local T=$(gettop)
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP."
@ -1088,18 +1036,18 @@ function tracedmdump()
local KERNEL=$T/prebuilts/qemu-kernel/$arch/vmlinux-qemu
local TRACE=$1
if [ ! "$TRACE" ] ; then
if [ ! "$TRACE" ]; then
echo "usage: tracedmdump tracename"
return
fi
if [ ! -r "$KERNEL" ] ; then
if [ ! -r "$KERNEL" ]; then
echo "Error: cannot find kernel: '$KERNEL'"
return
fi
local BASETRACE=$(basename $TRACE)
if [ "$BASETRACE" = "$TRACE" ] ; then
if [ "$BASETRACE" == "$TRACE" ]; then
TRACE=$ANDROID_PRODUCT_OUT/traces/$TRACE
fi
@ -1125,24 +1073,23 @@ function tracedmdump()
# communicate with a running device or emulator, set up necessary state,
# and run the hat command.
function runhat()
{
function runhat() {
# process standard adb options
local adbTarget=""
if [ "$1" = "-d" -o "$1" = "-e" ]; then
if [ "$1" == "-d" -o "$1" == "-e" ]; then
adbTarget=$1
shift 1
elif [ "$1" = "-s" ]; then
elif [ "$1" == "-s" ]; then
adbTarget="$1 $2"
shift 2
fi
local adbOptions=${adbTarget}
#echo adbOptions = ${adbOptions}
#echo adbOptions == ${adbOptions}
# runhat options
local targetPid=$1
if [ "$targetPid" = "" ]; then
if [ "$targetPid" == "" ]; then
echo "Usage: runhat [ -d | -e | -s serial ] target-pid"
return
fi
@ -1175,8 +1122,7 @@ function runhat()
hat -JXmx512m $localFile
}
function getbugreports()
{
function getbugreports() {
local reports=(`adb shell ls /sdcard/bugreports | tr -d '\r'`)
if [ ! "$reports" ]; then
@ -1193,21 +1139,18 @@ function getbugreports()
done
}
function getsdcardpath()
{
function getsdcardpath() {
adb ${adbOptions} shell echo -n \$\{EXTERNAL_STORAGE\}
}
function getscreenshotpath()
{
function getscreenshotpath() {
echo "$(getsdcardpath)/Pictures/Screenshots"
}
function getlastscreenshot()
{
function getlastscreenshot() {
local screenshot_path=$(getscreenshotpath)
local screenshot=`adb ${adbOptions} ls ${screenshot_path} | grep Screenshot_[0-9-]*.*\.png | sort -rk 3 | cut -d " " -f 4 | head -n 1`
if [ "$screenshot" = "" ]; then
if [ "$screenshot" == "" ]; then
echo "No screenshots found."
return
fi
@ -1215,8 +1158,7 @@ function getlastscreenshot()
adb ${adbOptions} pull ${screenshot_path}/${screenshot}
}
function startviewserver()
{
function startviewserver() {
local port=4939
if [ $# -gt 0 ]; then
port=$1
@ -1224,33 +1166,27 @@ function startviewserver()
adb shell service call window 1 i32 $port
}
function stopviewserver()
{
function stopviewserver() {
adb shell service call window 2
}
function isviewserverstarted()
{
function isviewserverstarted() {
adb shell service call window 3
}
function key_home()
{
function key_home() {
adb shell input keyevent 3
}
function key_back()
{
function key_back() {
adb shell input keyevent 4
}
function key_menu()
{
function key_menu() {
adb shell input keyevent 82
}
function smoketest()
{
function smoketest() {
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
echo "Couldn't locate output files. Try running 'lunch' first." >&2
return
@ -1270,8 +1206,7 @@ function smoketest()
}
# simple shortcut to the runtest command
function runtest()
{
function runtest() {
local T=$(gettop)
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP." >&2
@ -1287,7 +1222,7 @@ function godir () {
fi
local T=$(gettop)
local FILELIST
if [ ! "$OUT_DIR" = "" ]; then
if [ ! "$OUT_DIR" == "" ]; then
mkdir -p $OUT_DIR
FILELIST=$OUT_DIR/filelist
else
@ -1301,7 +1236,7 @@ function godir () {
fi
local lines
lines=($(\grep "$1" $FILELIST | sed -e 's/\/[^/]*$//' | sort | uniq))
if [[ ${#lines[@]} = 0 ]]; then
if [[ ${#lines[@]} == 0 ]]; then
echo "Not found"
return
fi
@ -1421,8 +1356,7 @@ function _complete_android_module_names() {
function pez {
"$@"
local retval=$?
if [ $retval -ne 0 ]
then
if [ $retval -ne 0 ]; then
echo $'\E'"[0;31mFAILURE\e[00m"
else
echo $'\E'"[0;32mSUCCESS\e[00m"
@ -1430,8 +1364,7 @@ function pez {
return $retval
}
function get_make_command()
{
function get_make_command() {
# If we're in the top of an Android tree, use soong_ui.bash instead of make
if [ -f build/soong/soong_ui.bash ]; then
# Always use the real make if -C is passed in
@ -1447,8 +1380,7 @@ function get_make_command()
fi
}
function _wrap_build()
{
function _wrap_build() {
if [[ "${ANDROID_QUIET_BUILD:-}" == true ]]; then
"$@"
return $?
@ -1472,16 +1404,16 @@ function _wrap_build()
color_reset=""
fi
echo
if [ $ret -eq 0 ] ; then
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
if [ $hours -gt 0 ]; then
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
elif [ $mins -gt 0 ] ; then
elif [ $mins -gt 0 ]; then
printf "(%02g:%02g (mm:ss))" $mins $secs
elif [ $secs -gt 0 ] ; then
elif [ $secs -gt 0 ]; then
printf "(%s seconds)" $secs
fi
echo " ####${color_reset}"
@ -1524,13 +1456,11 @@ function mmma()
_trigger_build "modules-in-dirs" "$@"
)
function make()
{
function make() {
_wrap_build $(get_make_command "$@") "$@"
}
function provision()
{
function provision() {
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
echo "Couldn't locate output files. Try running 'lunch' first." >&2
return 1
@ -1541,7 +1471,7 @@ function provision()
fi
# Check if user really wants to do this.
if [ "$1" = "--no-confirmation" ]; then
if [ "$1" == "--no-confirmation" ]; then
shift 1
else
echo "This action will reflash your device."
@ -1550,7 +1480,7 @@ function provision()
echo ""
echo -n "Are you sure you want to do this (yes/no)? "
read
if [[ "${REPLY}" != "yes" ]] ; then
if [[ "${REPLY}" != "yes" ]]; then
echo "Not taking any action. Exiting." >&2
return 1
fi
@ -1575,7 +1505,8 @@ function validate_current_shell() {
;;
*zsh*)
function check_type() { type "$1"; }
enable_zsh_completion ;;
enable_zsh_completion
;;
*)
echo -e "WARNING: Only bash and zsh are supported.\nUse of other shell would lead to erroneous results."
;;