Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 438fc222 authored by Anton Hansson's avatar Anton Hansson Committed by Gerrit Code Review
Browse files

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

parents ed67178e d9c56568
Loading
Loading
Loading
Loading
+242 −173
Original line number Diff line number Diff line
@@ -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,8 +97,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
    fi
@@ -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."
@@ -197,17 +209,13 @@ 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
        arm64) toolchaindir=aarch64/aarch64-linux-android-$targetgccversion/bin;
               toolchaindir2=arm/arm-linux-androideabi-$targetgccversion2/bin
            ;;
        *)
@@ -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.
@@ -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"
@@ -442,7 +455,8 @@ 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
        default_value=$TARGET_PRODUCT
@@ -466,7 +480,8 @@ function chooseproduct() {
        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"
@@ -482,7 +497,8 @@ function chooseproduct() {
    destroy_build_var_cache
}

function choosevariant() {
function choosevariant()
{
    echo "Variant choices are:"
    local index=1
    local v
@@ -515,7 +531,8 @@ function choosevariant() {
                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"
@@ -527,7 +544,8 @@ function choosevariant() {
    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,7 +765,8 @@ 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
        # The following circumlocution ensures we remove symlinks from TOP.
@@ -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,11 +840,11 @@ 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
@@ -838,84 +866,89 @@ 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."
    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
@@ -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."
@@ -1047,7 +1099,7 @@ function tracedmdump() {
    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 $?
@@ -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."
@@ -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."
            ;;