diff --git a/envsetup.sh b/envsetup.sh index 8699a1988d..0ec7e6ffd2 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -51,7 +51,8 @@ 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' ' '`) @@ -63,7 +64,8 @@ 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 @@ -71,7 +73,8 @@ 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" @@ -79,7 +82,8 @@ 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 @@ -93,10 +97,12 @@ 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) @@ -108,8 +114,10 @@ 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 @@ -123,7 +131,8 @@ 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 @@ -140,18 +149,21 @@ 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." @@ -173,10 +185,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/:%/} @@ -197,18 +209,14 @@ 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" @@ -309,7 +317,8 @@ 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 @@ -318,7 +327,8 @@ function printconfig() { get_build_var report_config } -function set_stuff_for_environment() { +function set_stuff_for_environment() +{ setpaths set_sequence_number @@ -327,7 +337,8 @@ 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 } @@ -342,7 +353,8 @@ 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. @@ -370,7 +382,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 @@ -383,7 +395,8 @@ function addcompletions() { complete -F _complete_android_module_names m } -function choosetype() { +function choosetype() +{ echo "Build type choices are:" echo " 1. release" echo " 2. debug" @@ -398,7 +411,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 @@ -426,7 +439,7 @@ function choosetype() { echo ;; esac - if [ -n "$1" ]; then + if [ -n "$1" ] ; then break fi done @@ -442,9 +455,10 @@ 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 @@ -456,23 +470,24 @@ 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 @@ -482,7 +497,8 @@ function chooseproduct() { destroy_build_var_cache } -function choosevariant() { +function choosevariant() +{ echo "Variant choices are:" local index=1 local v @@ -501,33 +517,35 @@ 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 @@ -545,7 +563,8 @@ function choosecombo() { destroy_build_var_cache } -function add_lunch_combo() { +function add_lunch_combo() +{ if [ -n "$ZSH_VERSION" ]; then echo -n "${funcfiletrace[1]}: " else @@ -554,7 +573,8 @@ 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) @@ -564,7 +584,8 @@ 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:" @@ -587,7 +608,8 @@ function print_lunch_menu() { echo } -function lunch() { +function lunch() +{ local answer if [[ $# -gt 1 ]]; then @@ -605,13 +627,17 @@ 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))]} @@ -634,7 +660,8 @@ function lunch() { fi fi - if [ -z "$product" ]; then + if [ -z "$product" ] + then echo echo "Invalid lunch combo: $selection" return 1 @@ -644,7 +671,8 @@ 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 @@ -666,7 +694,8 @@ 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]}" @@ -682,7 +711,8 @@ 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)" @@ -709,15 +739,9 @@ 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 @@ -741,13 +765,14 @@ 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. @@ -767,7 +792,8 @@ function gettop { fi } -function croot() { +function croot() +{ local T=$(gettop) if [ "$T" ]; then if [ "$1" ]; then @@ -780,7 +806,8 @@ function croot() { fi } -function _croot() { +function _croot() +{ local T=$(gettop) if [ "$T" ]; then local cur="${COMP_WORDS[COMP_CWORD]}" @@ -791,7 +818,8 @@ function _croot() { fi } -function cproj() { +function cproj() +{ local TOPFILE=build/make/core/envsetup.mk local HERE=$PWD local T= @@ -812,17 +840,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] " return 255 fi local EXE="$1" - if [ "$EXE" ]; then + if [ "$EXE" ] ; then qpid | \grep "$prepend$EXE$append" else adb shell ps \ @@ -838,87 +866,92 @@ 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 "" @@ -930,90 +963,107 @@ 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 "$@" {} + } @@ -1021,11 +1071,13 @@ 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." @@ -1036,18 +1088,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 @@ -1073,23 +1125,24 @@ 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 @@ -1122,7 +1175,8 @@ function runhat() { hat -JXmx512m $localFile } -function getbugreports() { +function getbugreports() +{ local reports=(`adb shell ls /sdcard/bugreports | tr -d '\r'`) if [ ! "$reports" ]; then @@ -1139,18 +1193,21 @@ 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 @@ -1158,7 +1215,8 @@ function getlastscreenshot() { adb ${adbOptions} pull ${screenshot_path}/${screenshot} } -function startviewserver() { +function startviewserver() +{ local port=4939 if [ $# -gt 0 ]; then port=$1 @@ -1166,27 +1224,33 @@ 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 @@ -1206,7 +1270,8 @@ 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 @@ -1222,7 +1287,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 @@ -1236,7 +1301,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 @@ -1356,7 +1421,8 @@ 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" @@ -1364,7 +1430,8 @@ 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 @@ -1380,7 +1447,8 @@ function get_make_command() { fi } -function _wrap_build() { +function _wrap_build() +{ if [[ "${ANDROID_QUIET_BUILD:-}" == true ]]; then "$@" return $? @@ -1404,16 +1472,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}" @@ -1456,11 +1524,13 @@ 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 @@ -1471,7 +1541,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." @@ -1480,7 +1550,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 @@ -1505,8 +1575,7 @@ 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." ;;